黑马程序员技术交流社区

标题: 关于类中创建对象的详细过程的一个小结,希望对大家能... [打印本页]

作者: 杜成龙    时间: 2013-4-15 17:51
标题: 关于类中创建对象的详细过程的一个小结,希望对大家能...
在刚学习类和创建对象时,对其中的过程和先后顺序很模糊,后来认真研究了一下,做了个小结,希望能对大家有所帮助~~
class Person
{
    String name;
    int age;
    Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
}
class PersonDemo
{
    public static void main(String[]  args)
    {
          Person p=new Person("张三",28);
     }
}

以我上面简写的一个小程序为例,大家知道  Person p=new Person("张三",28)  这句话都做了什么事情吗?
它是一个创建对象的语句,但其中有很多我们看不见的动作,归纳如下:
1.因为new用到了Person.class。所以会先找到Person.class文件并加载到内存中。
2.如果该类中有static代码块的话,先执行它,给Person.class类进行初始化。
3.在堆内存中开辟空间,分配内存地址。
4.在堆内存中建立对象的特有属性,并进行默认初始化。
5.对属性进行显示初始化。
6.如果有的话,对对象进行构造代码块初始化。
7.对对象进行对应的构造函数初始化。
8.将内存地址赋给栈内存中的p变量。
虽然是一句简单的语句,里面包含了很多的动作,我觉得弄清它是很有必要的~~
作者: 许庭洲    时间: 2013-4-19 07:27
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2