堆和栈
-
堆 存的是实体,一般生命周期长,由gc垃圾回收算法回收
-
栈 存的是变量,生命周期较短,结束后自动释放
Person p = new Person()
new Person() 存在堆中 地址0X0001
p 存在栈中 p = 0X0001
基本数据类型和String一般是存到栈中,其他是存到堆中
int a = 3 存在栈中
int a[] = new int[3] a存在栈中 3个int数据存在中
String a = “abc” 栈
String a = new String(“abc”) 堆 -
所以java是值传递(值传递结果copy副本 引用传递不copy )
所以在recyclerview中adapter 中new Adapter(List)中传入的是list的地址,所以在activity中更改list的值,在adapter中也更新list的值。