主要参考: https://blog.csdn.net/superhill/article/details/7446669
今天写改bug的时候突然就发现了这样一个问题:
int a = 1;
int b = a;
a = 0;
b的值是0还是1?
Object a = new Object();
b = a;
a = null;
b的值又为不为空?
实际上这就是类似于c++的按值传递和按引用传递了,需要重新理一下这个概念。
参考c++的概念,在java里面,只有基础类型和String是按值传递的,后者也是保存在栈内存的字符串常量池里面。对象之间的传递就是引用传递,传递地址。