以下是我自己看毕老师视频说的对象的初始化过程,本人感觉挺有用的,对于了解内存空间的分配情况帮助挺大
特总结了以下:
class Person
{
private String name;
private String country;
public Person(String name,String country)
{this.name=name;this.country=country;}
public void shouCountry()
{System.out.println(country);}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p=new Person("张三","中国");
}
}
在这个例子中对象的初始化过程:
1、因为new了个person对象,所以会先找到person.class文件并加载到内存中
2、执行该类的静态代码块,因为没有,所以不会执行!-----静态代码块是给类进行初始化的
3、在堆内存开辟空间,分配内存地址
4,在堆内存中建立对象的特有属性,并默认初始化 就是这里的name和country
5,对属性进行显示初始化,因为我们的类中并没有 所以不执行
6,执行构造代码块----我们也没有定义,所以也不用的
7,对对象进行相应的构造函数初始化,就是执我们所定义的构造函数
8,将内存地址付给栈内存中的变量p;
以上就是简单的对象的初始化过程,和大家分享一下,希望对大家能有所帮助!! |
|