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 閱讀(1594) 評論(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)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 金川县| 余姚市| 调兵山市| 睢宁县| 礼泉县| 江川县| 汕头市| 中超| 长乐市| 西华县| 塘沽区| 平遥县| 万年县| 郯城县| 犍为县| 修文县| 青川县| 仪陇县| 新宁县| 新邵县| 余江县| 固安县| 务川| 韶关市| 灵丘县| 蒙自县| 巴东县| 吕梁市| 石门县| 忻州市| 若尔盖县| 镇江市| 华宁县| 福鼎市| 江达县| 淮安市| 巩义市| 江口县| 酒泉市| 新乐市| 肥西县|