代码块,类什么时候被加载,构造器执行过程_听韩顺平课笔记
1.代码块快速入门
代码块隐式调用:

代码块基本语法:

使用代码块的好处(对构造器的补充机制,提取出构造器中相同的内容,放入代码块中):

创建对象时,会先调用代码块中的内容
代码块调用的顺序优先于构造器

2.代码块使用细节1
- 静态代码块,随类加载而执行,且静态代码块只会执行一次(类加载只会执行一次)
- 普通代码块,在创建对象实例时,会被隐式的调用,被创建一次,就会调用一次;如果只是使用类的静态成员时,普通代码块并不会执行
- 类什么时候被加载?(重要,背) 三种情况
- 1.创建对象实例时(new)
- 2.创建子类对象实例,父类也会被加载,且父类先于子类被加载(继承)
- 3.使用类的静态成员时(使用子类的静态成员,父类也会被加载)

类加载了,但没有创建对象,普通代码块不会被执行

3.代码块使用细节2
创建一个对象时:在一个类中的代码块,属性,和构造器的调用顺序:(多个类又如何?)
- 静态代码块与静态属性的优先级问题
- 普通代码块和普通属性
- 构造器

4.代码块使用细节3
构造器执行的过程:super,普通代码块,构造器中内容
- 构造器中隐藏了super(),和普通代码块(静态代码块,属性在类加载执行)

5.代码块使用细节4
创建一个子类对象时(继承关系),他们的静态代码块,静态属性初始化,普通代码块,普通属性初始化,构造方法的调用顺序如何?(六步)



静态代码块只能调用静态成员

6.代码块练习
使用类的静态成员会使类加载,静态代码块只会在类加载的时候执行一次



浙公网安备 33010602011771号