在java中有一種被稱為類類型的變量,它不同於基本類型變量存儲值的方式。不管是基本變量還是類類型變量,都實現為一個內存位置。但是,由於基本變量所需的內存數量是相同的,所以系統可以給它設置一個固定的空間保持命名對象的變量。類類型變量則不同,由於它的長度不確定,從而使得系統難以給其分配一個固定的空間來保存命名對象的變量。因此,對於類類型變量,它存儲的是對象的內存地址,而不是對象本身。下面舉個例子加以證明:
/**
* Comments:類類型之間賦值的特點實例
* @author 塞上名豬
* Create Time:2013-09-12
*
*/
public class StringTest {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public static void main(String[] args) {
StringTest str1=new StringTest();
StringTest str2=new StringTest();
str1.setStr("111111");
str2.setStr("222222");
//類類型之間的賦值,是將str1的內存地址賦值給了str2,賦值後它倆指向了同一內存地址
str2=str1;
str2.setStr("333333");
System.out.println(str1.getStr()); //輸出結果為333333
System.out.println(str2.getStr()); //輸出結果為333333
}
}
從輸出的結果可以看出,類類型變量並不是簡單的將賦的值存儲於命名對象中,而是將地址存放於類類型變量中。所以類類型變量之間的賦值語句賦值的是內存地址,賦值後兩個變量指向同一地址。