posts - 6,  comments - 7,  trackbacks - 0
            2008年3月4日
           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 @ 2008-03-04 17:33 zhan 閱讀(1597) | 評論 (2)編輯 收藏
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晋州市| 滦南县| 浦县| 阿拉尔市| 比如县| 大石桥市| 聊城市| 葵青区| 泗洪县| 彭州市| 南京市| 南昌市| 新余市| 武平县| 塔河县| 麻阳| 英吉沙县| 新昌县| 友谊县| 托克逊县| 尖扎县| 齐河县| 缙云县| 房产| 万州区| 鲁山县| 香港 | 铁岭县| 浦北县| 电白县| 香港 | 台南市| 定州市| 广丰县| 柯坪县| 浮山县| 祁门县| 栖霞市| 高唐县| 义马市| 石阡县|