简述java对象创建的过程

经常在外面面试的同学,应该经常会被问到,java对象是如何创建的?…应该没人直接就说new一个吧。我想你这个答案面试官是不会再针对对象问你问题的(next one)。
那么如何让面试官对你产生兴趣从而对你发起灵魂追问呢?那你就应该从JVM对类的加载开始谈起。(如不解,可以参考我上一篇关于类加载器的文章)。
加入这个类称为A,堆内存中找不到A,那么A就还未被类加载器加载到内存中。
1.这时候jvm类加载器就将A Load到内存中。
2.类加载器的Linking过程:
1).verification:校验加载进来的class文件是否符合JVM规范。
2).preparation:将class文件静态变量赋默认值(PS:不是初始值)
3).resolution:解析阶段,也就是将类、接口、字段和方法的符号引用转为直接引用。
3.类加载器的initializing:初始化阶段,静态变量在这个时候才会被赋值为初始值;
说到这里,类A的加载阶段就结束了。
接下来就要谈谈对象的new 阶段了。也可分为三个阶段:
1.申请内存空间
2.成员变量设为默认值:比如类A 里有成员变量int a=8,这时候就会赋予a=0.
3.调用构造方法:
1).将成员变量按照顺序设为初始值:比如这时候a=8.
2).执行构造方法:一定会先调用super();

我想这样回答应该就可以了。面试官:good good good。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值