栈内存类型 存储引用类型名字 最终是对应到堆内存里 可能经过一系列的对应 才能对应到堆内存里
堆内存类型 只存储基本类型值
@Test
void testBaseA() {
int a = 1;
System.out.println(a);
int b = a;
buildBaseA(a);
// 基本类型没有使用栈内存 所以值没有改变
System.out.println(b);
}
private void buildBaseA(int a) {
a = 2;
}
@Test
void testA() {
A a = new A();
a.a = 1;
System.out.println(a.a);
A b = a;
buildA(a);
// 引用类型 新开辟了栈内存 指向同一个堆内存 所以 两个栈内存所指向的同一个堆内存值被改变了 即是都改变 不属于基本类型的都是引用类型 包括基本类型的数组也是引用类型内存 int[]
System.out.println(b.a);
}
private void buildA(A a) {
a.a = 2;
}
class A {
int a;
}
2