首先看以下**:
listlist;
listmlist = new arraylist();
list = mlist;
mlist.add("aaa");
list.add("bbb");
system.out.println(mlist);
列印出來的mlist 發現「bbb」也新增進去了,但是我們覺得奇怪,list才新增了「bbb」,為什麼mlist的值會改變呢?
個人認為list = mlist; 可以看做是c語言中的指標,list指向了mlist,list和mlist的儲存了同乙個位址,而 用 new 來建立的物件
指向的位址是不同的
java裡面給物件賦值,慎用賦值符號( )
對於物件來說,注意變數名類似於指標,所以請慎用賦值符號 比如下面的 arraylist alall new arraylist for int i 0 i 10 i 此時alall裡面有10個元素 0 9 arraylist alprocessing new arraylist alprocessi...
java 物件的賦值與其屬性間賦值差異
在乙個程式中遇到這樣的問題 執行 a b,之後改變a的屬性值發現b的相應屬性值也發生變化,而若將a的屬性乙個個的傳給a,則在a改變後不會影響b.其根本原因是,a b相當於c語言中的引用,a與b將指向同一塊記憶體.因此其中乙個變化另乙個也會跟著變化.而屬性間的賦值只是物件值的複製,並未改變各物件所指向...
物件賦值 物件引用
物件賦值 物件引用 分配的物件 class object objectvar new object reference objectvar assignment objectvar 在 php 5,乙個物件變數已經不再儲存整個物件的值 只是儲存乙個識別符號來訪問真正的物件內容 情況如下 handle...