class Test {
public static void main(String[] args){
Dog d1 = new Dog();
d1.name = "小黑";
d1.age = 1;
System.out.println(d1.name + "-----" +d1.age);
d1.eat();
d1.drink();
}
}
class Dog {
String name;
int age;
public void eat(){
System.out.println("吃东西");
}
public void drink(){
System.out.println("喝水");
}
}
图解:
步骤:1.先把使用类型的字节码文件加载到方法区,形成一个字节码文件对象
2.在栈内存中创建一个Dog类型的引用,用来存储对象在对区空间的地址。
3.在堆内存中开辟空间,给每个成员变量分配空间。
4.对成员变量进行赋值初始化操作,引用类型赋值:null,整型:0。
5.将对象的地址,赋值给栈内存的引用存储。
内存图说明:
1.只有第一次使用某个类型时,才会把该类型的字节码文件加载到方法区,以后再使用
该类型就不加载字节文件了。
2.在创建对象的时候,默认隐含一个字节码文件的地址,将来可以通过对象去访问字节
码文件中的方法。
3.如果某个对象调用方法,进栈后该方法中会自动包含一个该对象地址。
4.每次调用new关键字,都会在堆区创建出新的对象。