栈
栈存放的是基本数据类型 + 引用变量名
int a = 1;
这里的a和1都存放在栈中
String b = “abc”;
这里只有b存放在栈中,而"abc"则存放在堆中
堆
堆存放的是new出来的对象
上述的String b = "abc"中,其实b是引用类型,指向"abc"这个字符串对象,b存放在栈中,而"abc"这个字符串对象是存储在堆中的。
int c = new int[3];
这里同理,c作为引用类型的变量存放在栈中,而长度为3这个数组则存放在堆中,他们之间通过地址联系,c其实存储的是这个长的为3的数组的地址。
原文链接:https://blog.csdn.net/weixin_48510456/article/details/107768848