1.栈(Stack): 存放的都是方法中的局部变量(方法运行一定是在栈中)
1.局部变量:方法的参数,或者方法体内部的变量
2.作用域:一旦超出作用域,立刻马上从栈中消失
2.堆(Heap):凡是new出来的东西,都在堆内存当中。(包括引用类型)
1.堆内存里面的东西都有一个地址值:16进制
堆内存里面的数据,都有默认值。规则:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。
2. 字符串常量池
2.1.对于引用类型来说,==进行的是地址值的比较
2.2.双引号直接写的字符串在常量池当中,new的不在池当中
3.方法区(Methoud Area):存储.class相关信息,包括方法的信息
1. 静态区(Static):根据类名称访问静态成员变量的时候,全程跟对象没有关系,只跟类有关系
4)本地方法栈(Native Method Stack):与操作系统相关。
暂时没学
5)寄存器(PC Register):与CPU相关。
暂时没学