Java 的引用和地址是每個(gè) Java 程序員需要深入了解的概念。在 Java 應(yīng)用程序中,一個(gè)變量引用一個(gè)對(duì)象,也就是說(shuō),變量包含該對(duì)象的地址。Java 中的對(duì)象和數(shù)組存儲(chǔ)在堆(Heap)中,而不是在棧(Stack)中。變量的地址表示被分配給對(duì)象引用的堆中的內(nèi)存地址。
// 創(chuàng)建一個(gè)字符串對(duì)象 String str = new String("Hello"); // 輸出該字符串對(duì)象的地址 System.out.println(str); // 輸出結(jié)果:Hello
在上面的代碼中,我們創(chuàng)建了一個(gè)字符串對(duì)象,然后將其賦值給一個(gè)字符串變量 str。因此,變量 str 包含字符串對(duì)象的地址。輸出變量 str 時(shí),會(huì)調(diào)用該對(duì)象的 toString() 方法,并將返回的字符串輸出到控制臺(tái)。
Java 同時(shí)提供了兩種引用類型:基本類型和引用類型。基本類型包括 boolean、byte、char、short、int、long、float 和 double。基本類型的值保存在棧中。而引用類型包括類、接口、數(shù)組等。
// 創(chuàng)建一個(gè)整型變量 int a = 10; // 創(chuàng)建一個(gè)數(shù)組變量 int[] b = new int[5]; // 輸出變量的地址 System.out.println(a); // 輸出結(jié)果:10 System.out.println(b); // 輸出結(jié)果:[I@1c8bd9f3
在上面的代碼中,我們創(chuàng)建了一個(gè)整型變量和一個(gè)整型數(shù)組變量。在輸出變量 a 時(shí),實(shí)際輸出了變量 a 的值,因?yàn)樗腔绢愋汀6谳敵鲎兞?b 時(shí),輸出的是變量 b 存儲(chǔ)的數(shù)組對(duì)象的地址,因?yàn)閿?shù)組是引用類型。
總之,在 Java 中,變量引用對(duì)象,而不是對(duì)象本身。對(duì)于引用類型的變量,它們存儲(chǔ)了對(duì)實(shí)際對(duì)象的引用,而不是對(duì)象本身。因此,在編寫 Java 代碼時(shí),需要注意理解變量的引用和地址的概念。