10:53-10:58 描述无法理解 - 作为这个类的初始化,是通过静态块来完成的
问题描述:
课程10:53-10:58
作为这个类的初始化,是通过静态块来完成的
这句话我感到很奇怪,无法理解。类的初始化不是执行类构造器<cinit>()方法么,编译器将.java文件编译成.class文件时,收集所有类的初始化代码和静态代码块的代码,收集在一起成为<cinit>()方法。而且静态代码块本身就是类的一部分,为什么类的初始化是通过自己的静态代码块完成的?
10
收起
正在回答
1回答
同学你好,静态代码块的执行时机是在类加载的时候。而所谓“类加载”是指第一次使用某个类的时候,对该类信息进行加载与初始化。所以静态代码块会先执行。
而当我们执行newlnstance()方法时,会实例化对象,从而会去调用构造方法。
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星