栈:所有局部变量都会在栈内存中创建
局部变量:定义在方法中的变量或者方法声明上的变量
方法执行都会加载到栈中进行
局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失
堆:所有对象及其对应的实例变量和数组都将存储在此处
简单理解为:new出来的东西,都存储在堆内存
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收
堆内存中,当对象或者数组产生的地址通过任何方法都找不到时,也会被判定成垃圾 空闲时回收
实例变量(成员变量)有初始化值: 基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符 引用数据类型:null
Student s =new Student()
这个s就是在栈内存中,通过s的值地址 指向new Student()
new Student()存放在堆中,其成员变量 也存放在堆中
如果再创建对象
Student s2 = s; 也就是将s的地址赋值给了s2那么 这两个对象将共享同一个堆。
任意一个做出改变 另外的都会改变