代码块,类什么时候被加载,构造器执行过程_听韩顺平课笔记

1.代码块快速入门

代码块隐式调用:

代码块基本语法:

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

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

2.代码块使用细节1

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

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

3.代码块使用细节2

创建一个对象时:在一个类中的代码块,属性,和构造器的调用顺序:(多个类又如何?)

  • 静态代码块与静态属性的优先级问题
  • 普通代码块和普通属性
  • 构造器

4.代码块使用细节3

构造器执行的过程:super,普通代码块,构造器中内容

  • 构造器中隐藏了super(),和普通代码块(静态代码块,属性在类加载执行)

5.代码块使用细节4

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

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

6.代码块练习

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

posted @ 2021-09-11 12:46  CH0701  阅读(246)  评论(0)    收藏  举报