首先,在内存中,JAVA存储分为:栈、堆、方法区; 堆的特点是: 1、堆是一个特殊的完全二叉树,分为最小堆和最大堆,在内存中的唯一目的是存放对象实例以及数组都是在栈中存储。 栈的特点: 1、可以理解它是一个先进后出的线性表,主要存储的是:几种常用的基础数据类型、局部变量,在编译执行完后,会自动释放。 方法区: 1、它主要存储的是虚拟机加载的类信息、常量、静态变量,即时编译器编译后的代码。
例子:
student s1=new student();
s1.name=测试;
s1.age=12;
student s2=s1;
s2.age=10;
这个时候的s2的年龄就不是12而是10,原因是:s2它拿到的是s1指向的地址而不是新建了一个实例对象,所以当执行s2.age=10时,它就修改了s1地址里s1.age=12>>变成了s1.age=10;从而s2.age=10;



