首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 程序設計核心:對象、引用與內存模型深度解析

     編輯:Java 相關知識

萬事萬物皆對象

Java 徹底貫徹面向對象,甚至程序本身也是對象。核心三步:定義類 → 創建對象 → 發送消息。

1. 引用操控對象

引用如遙控器,對象如電視。聲明引用不創建對象:

String s; // 僅引用,指向 null
String s = new String("asdf"); // new 創建對象並賦值給引用

2. 類定義與對象創建

class DataOnly {
    int i;
    float f;
    boolean b;
}
DataOnly d = new DataOnly();
d.i = 47; d.f = 1.1f; d.b = false; // 通過點號訪問成員

默認初始化:類成員(字段)為基本類型時,Java 保證默認值(0、false、null);但局部變量無默認值,使用前必須顯式初始化,否則編譯報錯(C++ 僅警告)。

3. 套件導入

import java.util.ArrayList; // 具體導入
import java.util.*; // 通配符導入,便利但稍增編譯時間

4. static:「牧羊人」成員

static 成員屬於類,無需對象即可調用:

class StaticTest { static int i = 47; }
StaticTest st = new StaticTest();
st.i == StaticTest.i; // 同一內存區域
class StaticFun { static void incr() { StaticTest.i++; } }
StaticFun sf = new StaticFun();
sf.incr() == StaticFun.incr(); // 效果相同

Java vs C/C++ 關鍵差異

數組安全

Java 數組保證初始化(引用數組元素默認 null),運行時邊界檢查,杜絕越界訪問(C/C++ 數組僅是內存塊,極易出錯)。

作用域規則

C/C++ 允許內層作用域遮蔽外層同名變量;Java 禁止,認為易導致混淆:

{ int x = 1; { int x = 2; } } // Java 編譯錯誤

內存管理:垃圾回收器

無需手動銷毀對象。GC 監控所有 new 創建的對象,無引用指向時自動回收內存,徹底解決內存洩漏與釋放時機難題。

命名可視性:包機制

採用反轉域名作為包前綴(如 com.bruceeckel.utility),映射到目錄結構,構建全局唯一命名空間,徹底解決名稱衝突(C++ 需 namespace 輔助)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved