- Person p=new Person("zhangsan",20);
复制代码 同新手,发下我的看法,不对请指教
就那视频上毕老师用的这个Person类打个比方:
对这句话的详细分析如下:
1,因为new用到了Person.class所以会先找到Person.class文件并加载到内存中。
2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。(静态代码块,优先于其他的各种语句代码块,就是类存在就存在了)
3,在堆存中开辟空间,分配内存地址。
4,在堆内存中建立对象的特有属性,并且也进行默认初始化。
5,对属性进行显示初始化。
6,对对象进行构造代码快的初始化。(这个要实例化对象了,将对象里面的构造代码块初始化)
7,对对象进行对应的构造函数的初始化。(然后因为实例化对象会有对象特异性差异,就是根据不同的构造函数建立对象)
8,将内存地址付给栈内存中的p变量.。(这时对象建立了,就把堆内存里存这个对象的地址赋给栈内存里面的p,就是p指向对内存的这个对象)
|