三个区域
堆空间
栈空间
方法区
存储内容
堆空间 : 存储 new 出来的对象
栈空间 : 方法 变量
方法区: 又分为静态域和常量池 静态域存放静态变量 常量池存放字面量
内存解析
String str = "abc"; static Int a = 10; //创建String类型的变量str;创建Int类型变量a
这里的str是非静态变量所以将其放入到栈中,而静态变量a则需要放入静态域中,对于变量值"abc"和10则都应该放入到常量池当中
String str=new String("abc"); //创建String类型的对象str
这里的str是String类型的对象,所以放入栈中,而new出来的东西则放入到堆中,对于初始值"abc"则放入到常量池中即可。