當一個對象被當作參數傳遞到一個方法後,在此方法內可以改變這個對象的屬性,那麼這裏到底是「按值傳遞」還是「按引用傳遞」?
答:是按值傳遞。Java 語言的參數傳遞只有「按值傳遞」。當一個實例對象作爲參數被傳遞到方法中時,參數的值就是該對象的引用的一個副本。指向同一個對象,對象的內容可以在被調用的方法內改變,但對象的引用(不是引用的副本) 是永遠不會改變的。
當一個對象被當作參數傳遞到一個方法後,在此方法內可以改變這個對象的屬性,那麼這裏到底是「按值傳遞」還是「按引用傳遞」?
答:是按值傳遞。Java 語言的參數傳遞只有「按值傳遞」。當一個實例對象作爲參數被傳遞到方法中時,參數的值就是該對象的引用的一個副本。指向同一個對象,對象的內容可以在被調用的方法內改變,但對象的引用(不是引用的副本) 是永遠不會改變的。
正確方法 Iterator<Integer> it =list.iterator(); while(it.hasNext){ it.move } 錯誤方法 for(Integer i:list){