2015-09-23 122 views
1

我知道java是通過引用傳遞,但僅用於Java對象。但爲什麼它不適用於Java Wrapper類?包裝類如Integer,Float,Double是通過引用還是按值傳遞?因爲每當我在方法中傳遞這樣的類的對象並且改變一些值,但是在該方法外部時,我沒有得到更新的值。包裝類是按值傳遞還是按引用傳遞?

+4

'Java' - >'pass by value'。 – Satya

+3

[是Java的「傳遞引用」還是「傳遞值」?]的可能重複?(http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass按值計算) – childofsoong

+1

Java總是按值傳遞。包裝類可能看起來像傳遞引用,但它們不是。這是一個很好的閱讀。 http://javadude.com/articles/passbyvalue.htm – yogidilip

回答

5

pass by value的討論之上,Java中的所有包裝器類都是不可變的。他們複製原語的行爲。您需要返回最新值以查看更改。

+0

是的,如果我返回值我正在更新值。但我不明白,即使是Java通過引用傳遞爲什麼它不適用於Wrapper類。 –

+0

@ArvindChavhan因爲它們是不可變的:)閱讀關於不可變類。你會明白:https://en.wikipedia.org/wiki/Primitive_wrapper_class –

+0

好吧,我會讀到它。感謝您的幫助 –

相關問題