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

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 银川市| 平顶山市| 密山市| 眉山市| 桃源县| 讷河市| 南宫市| 阳江市| 天峻县| 甘南县| 太湖县| 湖口县| 甘孜县| 成都市| 于田县| 柳州市| 偃师市| 烟台市| 柳河县| 武强县| 乐陵市| 新化县| 丰城市| 宝坻区| 阿克| 峨眉山市| 清苑县| 德州市| 南郑县| 庆元县| 楚雄市| 彭泽县| 丹巴县| 融水| 江西省| 琼海市| 类乌齐县| 海兴县| 耿马| 深泽县| 云林县|