Java 的引用和地址是每個 Java 程序員需要深入了解的概念。在 Java 應用程序中,一個變量引用一個對象,也就是說,變量包含該對象的地址。Java 中的對象和數組存儲在堆(Heap)中,而不是在棧(Stack)中。變量的地址表示被分配給對象引用的堆中的內存地址。
// 創建一個字符串對象 String str = new String("Hello"); // 輸出該字符串對象的地址 System.out.println(str); // 輸出結果:Hello
在上面的代碼中,我們創建了一個字符串對象,然后將其賦值給一個字符串變量 str。因此,變量 str 包含字符串對象的地址。輸出變量 str 時,會調用該對象的 toString() 方法,并將返回的字符串輸出到控制臺。
Java 同時提供了兩種引用類型:基本類型和引用類型。基本類型包括 boolean、byte、char、short、int、long、float 和 double。基本類型的值保存在棧中。而引用類型包括類、接口、數組等。
// 創建一個整型變量 int a = 10; // 創建一個數組變量 int[] b = new int[5]; // 輸出變量的地址 System.out.println(a); // 輸出結果:10 System.out.println(b); // 輸出結果:[I@1c8bd9f3
在上面的代碼中,我們創建了一個整型變量和一個整型數組變量。在輸出變量 a 時,實際輸出了變量 a 的值,因為它是基本類型。而在輸出變量 b 時,輸出的是變量 b 存儲的數組對象的地址,因為數組是引用類型。
總之,在 Java 中,變量引用對象,而不是對象本身。對于引用類型的變量,它們存儲了對實際對象的引用,而不是對象本身。因此,在編寫 Java 代碼時,需要注意理解變量的引用和地址的概念。