1.概念
Java中你的内存模型主要分为5个部分。
- 栈(Stack):存放的是方法中的局部变量。方法的运行一定要在栈中运行。
局部变量:方法的参数或方法{}内部的变量。
作用域:一旦超出作用域,立刻从栈内存中消失。 - 堆(Heap):凡是new出来的东西都放在堆中。堆里面存放的都是地址值。
- 方法区(Method Area):存储.class相关信息,包含方法的消息。
- 本地方法栈:与操作系统相关。
- 寄存器:与cpu相关。
模型图
每次new出来的对象都会存入堆内存中,而这个对象的引用会指向对象的地址。
public class ArrayDemo {
public static void main(String[] args) {
User user1 = new User();
System.out.println(user1);
User user2 = new User();
System.out.println(user2);
}
}
打印结果为两个对象的地址值。