Java is Pass-by-Value

This often heard saying is not correct: "primitives are passed by value, and objects are passed by reference"

 

in Java everything is passed by value. Primitives are passed by value, and object references are passed by value. The objects themselves are never passed to a method, but the objects are always in the heap and only a reference(value) to the object is passed to the method.

 

http://stackoverflow.com/questions/40480/is-java-pass-by-reference

 

http://javadude.com/articles/passbyvalue.htm

 

just refer to the following two definitions and maybe you'd find the answer.

Pass-by-value
The actual parameter (or argument expression) is fully evaluated and the resulting value is copied into a location being used to hold the formal parameter's value during method/function execution. That location is typically a chunk of memory on the runtime stack for the application (which is how Java handles it), but other languages could choose parameter storage differently.
Pass-by-reference
The formal parameter merely acts as an alias for the actual parameter. Anytime the method/function uses the formal parameter (for reading or writing), it is actually using the actual parameter.

你可能感兴趣的:(java)