1,栈内存:存放主函数和局部变量以及引用类型变量。
2,堆内存:存放new出来的对象,数组对象。
3,方法区:a:存放静态成员变量和静态方法。
b:存放非静态成员变量和非静态方法。
- class Demo1
- {
- public static void main(String[] args)
- {
- Demo2 a = new Demo2("lisi",29);
- //Demo2 a:先在栈内存中定义一个Demo2类型的变量a,a暂时指向为null;
- /*new Demo2("lisi",29):在堆内存中建立一个对象实体,先对name和age进行
- 隐式的初始化,再调用构造函数进行成员变量赋值。最后把这个对象的地址给栈
- 内存中的a。*/
- }
- }
- class Demo2
- {
- String name;
- int age;
- Demo2(String name, int age)
- {
- this.name = name;
- this.age = age;
- }
- }
复制代码 |