PS:黑色加粗为重点关注内容
- 值传递和引用传递有什么区别
- 值传递:指的是在方法调用时,传递的是值的拷贝,也就是说传递后就互不相关了。
- 引用传递:指的是在方法调用时,传递的是引用的地址,也就是变量所对应的内存空间的地址,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。
- Java 只支持值传递
- 对象采用的不是引用调用,实际上,对象引用是按值传递的。
- 如传递一个对象,对象本身存在于堆中,而对象的引用存在于栈中
- 所以方法中的参数是引用类型时,传递的是栈中的引用,即还是值传递,此时有两个引用指向堆中的同一个对象。