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
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的內容將是毫不相關的。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
24 | 25 | 26 | 27 | 28 | 29 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
30 | 31 | 1 | 2 | 3 | 4 | 5 |
常用鏈接
留言簿(1)
隨筆檔案
搜索
最新評論

- 1.?re: JSF web編程中的JavaBean路徑訪問問題
- 贊一個
- --人口水壽
- 2.?re: 關于java變量的引用(reference)
- 一直把引用當內存地址理解....
- --久城
- 3.?re: 關于java變量的引用(reference)
-
機制上是這樣實現的.
但是@后面的并不是內在地址
- --DoubleJ
- 4.?re: JSF web編程:通過enum數組生成 下拉選擇列表
- 評論內容較長,點擊標題查看
- --zhan
- 5.?re: JSF web編程:通過enum數組生成 下拉選擇列表
- 通過enum生成下拉列表 比其他從backbean數組中獲取有什么好處嗎?
- --Jerome