01.静态代码块
静态代码块使用static关键字进行修饰,运行在类初始化阶段(这点不清楚的同学需要恶补JVM知识哈),静态代码块只运行一次,主要用于类变量的初始化和赋值。静态代码块的金典用法是读取配置文件,代码如下:
这里使用静态代码块加载配置文件,让这个配置文件仅仅只呗加载一次;
02.构造代码块
构造代码块运行在静态代码块之后,构造函数之前,主要用于对象实例数据的初始化问题,需要注意的是与构造函数不同的是,对于每次调用不同构造函数都会使用构造代码块,但是对于不同的构造函数,构造函数初始化的实例数据不同的。具体代码示例如下:
这里的运行结果如下:
可以看出在无参数的构造函数运行时,已经初始化了age和name
03.构造函数
构造函数是在对象建立的时候调用的,构造函数的作用是给对象初始化的;一个对象建立,一个构造函数只是运行一次,但是可以被对象调用多次。示例代码如下:
04.总结
静态代码块:
1.使用static关键字修饰,是在类初始化阶段运行静态代码块
2.静态代码块一般用于只需要加载一次的场景下,比如读取配置文件
3.静态代码块主要类调用
构造函数:
1.构造出对象时才会调用构造函数
2.构造函数建立对象时只是运行一次,不过可以多次调用该方法获取不同实例对象
3.不同的构造函数可能初始化不同的实例数据部分
构造代码块:
1.运行于静态代码块之后,构造函数之前
2.不同的构造函数可能初始化的实例数据部分不一样,但是都会运行构造代码块
3.主要用于初始化对象
05.面试常考
下面的面试题请大家思考?
1.静态代码块、构造块和构造函数的执行顺序?
2.构造函数和构造代码块的区别?(百度面试题)
网友评论