黑马程序员技术交流社区
标题:
这个语句不简单啊,希望大家都明白
[打印本页]
作者:
高美云
时间:
2011-11-2 19:38
标题:
这个语句不简单啊,希望大家都明白
Person p=new Person("张三",20);
1,new用到了Person.class,所以会用到Person.class文件并加载到内存中。
2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3,在堆内存中开辟空间,并分配内存地址。
4,在堆内存中建立对象的特有属性。并进行默认初始化。
5,对属性进行显示初始化。
6,对对象进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将内存地址赋给栈内存中的p变量。
作者:
欧阳文愿
时间:
2011-11-2 22:02
就这一句代码,电脑就执行了这么多步骤?堆内存主要存什么?变量吗?那栈内存呢?
作者:
七分饱
时间:
2011-11-2 22:14
有点意思,研究中……
作者:
杨玉揆
时间:
2011-11-2 22:58
看是简单的东西 其实一点也不简单 这个必须的记住 总结的非常好
作者:
张邦庆
时间:
2011-11-3 09:19
顶一个,new其实是在创建对象,而创建对象又是在运行时进行的,所以包括内存的分配,初始化等等都相应的进行,但是有个先后之分:static是最先执行的,而且只执行一次,属于对象的共享资源,然后创建对象就必须调用构造函数等等
作者:
何周舟
时间:
2011-11-3 11:08
赞{:soso_e179:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2