- 論壇徽章:
- 0
|
JAVA問題集合
討論一下
2. 問:到底 Java 是如何傳遞參數(shù)的?是by value或by reference?
答:All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]。根據(jù)以上 Java規(guī)格文件的說法, 所有參數(shù)應(yīng)該都是傳值的(by value)。但實際上, 實際經(jīng)驗卻告訴我們所有 Java 的對象都是傳址的(by reference)。因此我們可以這樣解釋: 基本類型(如int, float, char等)是by value,而所謂“對象”(Object)則是by value of reference to object。
其實針對所有的object para JAVA依然是采用傳值的機制(by value)只不過每個object的value是一段內(nèi)存地址[或說指針]而已 你可以修改這個地址所指向的對象的屬性 但是不能更改地址本身的值
嗯 core JAVA上說得很明白亞 |
|