内存分配方法主要可以分为:
堆(heap) 静态区域(由static修饰)
栈(stack) 常量池
其中,堆和常量池主要存放“=”右边的“值”。而栈和静态区域则主要存放“=”左边的变量(名)或者引用(名)。
举几个栗子:
1.String str = "abc"; static Int a = 10;
str---->stack (因为是变量名) a---->static区域(因为有static修饰且为变量名)
10---->常量池
2. String str=new String("abc");
str---->stack (因为是变量名对象的引用)
new String()---->heap (生成的对象,栈中的引用指向堆中的这个对象)
"abc"---->常量池