posts - 6,  comments - 7,  trackbacks - 0
           1 package cn.com.gentek.imatrix.test;
           2 
           3 public class tesRef {
           4     private DataItem item1;
           5     private DataItem item2;
           6 
           7     public tesRef() {
           8         item1 = new DataItem();
           9         item2 = item1;
          10     }
          11 
          12     public void newItem1() {
          13         item1 = new DataItem();
          14     }
          15 
          16     public void print() {
          17         System.out.println("item1: " + item1.toString());
          18         System.out.println("item2: " + item2.toString());
          19     }
          20 
          21     public static void main(String[] args) {
          22         tesRef tr = new tesRef();
          23         tr.print();
          24         tr.newItem1();
          25         tr.print();
          26     }
          27 }
          28 


              以上一段很簡單的代碼,很容易看懂。它的運行結果如下:
          item1: cn.com.gentek.imatrix.test.DataItem@c17164
          item2: cn.com.gentek.imatrix.test.DataItem@c17164
          item1: cn.com.gentek.imatrix.test.DataItem@1fb8ee3
          item2: cn.com.gentek.imatrix.test.DataItem@c17164

              toString()的結果格式為類名@對象的16進制Hash表示。這里我們可以如此理解,是一個指向DataItem類實例化時,在內存中開辟的一塊空間的地址標識。
              在調用函數tr.newItem1()(24行)之前,item1和item2所指向的內存空間是相同的。所以在改變item1的同時item2的值勢必更這一起改變,同理改變item2的內容,item1的內容也會做出相同的改變。item1.toString()和item2.toString()的結果正可以說明這一點。這也說明了,item1和item2存儲的都是一個內存地址。
              當調用
          tr.newItem1(),重新實例化item1,之后item1指向的另一塊內存空間,而item2保持不變,指向最初那塊內存空間。此時,item1和和item2的內容將是毫不相關的。

          posted on 2008-03-04 17:33 zhan 閱讀(1591) 評論(2)  編輯  收藏

          FeedBack:
          # re: 關于java變量的引用(reference)
          2008-03-04 22:27 | DoubleJ
          機制上是這樣實現的.
          但是@后面的并不是內在地址
            回復  更多評論
            
          # re: 關于java變量的引用(reference)
          2008-03-05 08:57 | 久城
          一直把引用當內存地址理解....  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 高邑县| 兰考县| 将乐县| 濉溪县| 海原县| 清河县| 金门县| 卫辉市| 西畴县| 郓城县| 温州市| 天柱县| 定日县| 甘孜| 遂溪县| 扶沟县| 且末县| 嘉兴市| 盘锦市| 宜良县| 芜湖县| 罗江县| 莫力| 宁远县| 平乐县| 永靖县| 根河市| 如皋市| 淮南市| 博兴县| 广水市| 武功县| 长治市| 珲春市| 凤台县| 宁远县| 长春市| 罗城| 水城县| 丁青县| 什邡市|