一、方法区:
类加载器在加载类文件时,从中提取了类信息。保存在一个成为方法区的内存逻辑区中。
类信息包括:
(1)非静态部分:包括非静态的方法(包括构造方法)
(2)静态部分(除了非静态部分包含的非静态方法、构造方法和非静态成员变量外有关于类的信息):
①静态成员变量
②静态方法
③静态代码块
④构造代码块
……
二、栈内存:
保存局部变量的值:
①用来保存基本数据类型的值
②保存类的实例,即堆内存中对象的引用(地址)
三、堆内存:
用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,该类的方法存在于方法区中。