标签:调用 Java11 属性 静态 子类 代码 顺平 加载
代码块
如果构造器中有相同的语句,可以将其放入一个代码块中,这样的话不管我们调用哪个构造器,都会优先调用代码块的内容,代码块的调用顺序优先于构造器。
(静态)方法只有在被调用时才执行,类加载时不执行
- 使用细节
1.static代码块是在类加载的时候执行,只执行一次
2.普通代码块是在创建对象的时候调用的,创建一次调用一次
3.类加载的三种情况:
(1)创建对象实例时(new)
(2)创建子类的对象实例,父类也会被加载(父类先加载,子类后加载)
(3)使用类的静态成员时
4.在创建一个对象时,在同一个类中各部分的调用顺序:
(1)调用静态代码块和静态属性的初始化(两者优先级一致,按定义顺序调用)
(2)调用静普通代码块和普通属性的初始化(两者优先级一致,按定义顺序调用)
(3)调用构造方法
5.构造器的最前面隐藏了 super()(调用父类的无参构造器)和调用普通代码块以及普通属性的加载,
静态成员(属性、方法、代码块)在类加载时执行,
因此优先于构造器和普通代码块执行。
执行结果:
6.当创建一个有继承关系的子类时,各部分调用顺序:
(1)父类的静态代码块和静态属性(两者优先级一致,按定义顺序调用)
(2)子类的静态代码块和静态属性(两者优先级一致,按定义顺序调用)
(3)父类的普通代码块和静态属性(两者优先级一致,按定义顺序调用)
(4)父类构造器
(5)子类的普通代码块和静态属性(两者优先级一致,按定义顺序调用)
(6)子类构造器
7.静态代码块只能调用静态成员(属性和方法),普通代码块可以调用任意成员(属性和方法)。
标签:调用,Java11,属性,静态,子类,代码,顺平,加载 来源: https://www.cnblogs.com/recorderM/p/15700639.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。