开课吧开课吧锤锤2021-02-20 17:35
打开浏览器,搜索有关程序员的面试题,会出现上万条的答案,盲目的人会选择,都存下来慢慢的去学习,精明的人,会选择一个大神,跟随大神的脚步提升自己。但是谁又不会私藏一些自己的技术呢?所以一个好的学习方式,是找到对的地方,对的老师,系统学习。今天依旧为大家继续带来Java面试题精选——Java类初始化顺序。
解析:
先说结论: 基类静态代码块,基类静态成员字段(并列优先级,按照代码中出现的先后顺序执行,且只有第一次加载时执行)
——>派生类静态代码块,派生类静态成员字段(并列优先级,按照代码中出现的先后顺序执行,且只有第一次加载时执行)
——>基类普通代码块,基类普通成员字段(并列优点级,按代码中出现先后顺序执行)
——>基类构造函数
——>派生类普通代码块,派生类普通成员字段(并列优点级,按代码中出现先后顺序执行)
——>派生类构造函数
代码验证:
class Log {
public static String initLog(String log) { System.out.println(log);return null; }
}
/**
* 基类
*/
class Base {
static { System.out.println("Base Static Block 1"); }
private static String staticValue = Log.initLog("Base Static Fiels");
static { System.out.println("Base Static Block 2"); }
{ System.out.println("Base Normal Block 1"); }
private String value = Log.initLog("Base Normal Field");
{ System.out.println("Base Normal Block 2"); }
Base() { System.out.println("Base Constructor"); }
}
/**
* 派生类
*/
public class Derived extends Base {
static { System.out.println("Static Block 1"); }
private static String staticValue = Log.initLog("Static Fiels");
static { System.out.println("Static Block 2"); }
{ System.out.println("Normal Block 1"); }
private String value = Log.initLog("Normal Field");
{ System.out.println("Normal Block 2"); }
Derived() { System.out.println("Derived Constructor"); }
/**
* 主线程
*/
public static void main(String[] args) {
Derived derived = new Derived();
}
控制台结果输出:
Base Static Block 1
Base Static Fiels
Base Static Block 2
Static Block 1
Static Fiels
Static Block 2
Base Normal Block 1
Base Normal Field
Base Normal Block 2
Base Constructor
Normal Block 1
Normal Field
Normal Block 2
Derived Constructor
以上就是小编为大家整理的面试经典题,如果这些资料还不足以满足您学习的欲望,那就点击下方图片,免费领取Java开发大厂面试资料
好的选择成就优秀的自己。赶紧领取资料吧!

最新文章

Java面试题:面向对象的特征有哪些方面?
抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
2021-03-04 16:21:40

Java常见面试题:高并发处理包
Hashtable:进行公共数据保存的时候线程的安全性是最高的,因为同一时刻只允许一个线程进行操作;
2021-03-01 15:29:56

Java面试中经常被问到的问题有哪些?
当然如果把性别字段设为表的聚集索引,那么就肯定能加快大约一半该字段的查询速度了。聚集索引指的是表本身数据按哪个字段的值来进行排序。因此,聚集索引只能有一个,而且使用聚集索引不会付出额外IO开销。当然你得能舍得把聚集索引这么宝贵资源用到性别字段上。
2021-02-26 17:22:36

【开课吧Java免费公开课】大厂高P面试官的面试突击指南
金三银四,突击面试季。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致对于面试的解析将帮助我们减少许多麻烦。
2021-02-25 15:00:14

Java面试题:volatile作用,指令重排相关
多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据
2021-02-24 17:24:19