Java基础面试题

开课吧开课吧锤锤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

好的选择成就优秀的自己。赶紧领取资料吧!

上一篇: Java面试中经常被问到的问题下一篇:Java面试问题大全及答案大全

最新文章

文章图0

Java面试题:面向对象的特征有哪些方面?

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

2021-03-04 16:21:40

文章图1

Java常见面试题:高并发处理包

Hashtable:进行公共数据保存的时候线程的安全性是最高的,因为同一时刻只允许一个线程进行操作;

2021-03-01 15:29:56

文章图2

Java面试中经常被问到的问题有哪些?

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

2021-02-26 17:22:36

文章图3

【开课吧Java免费公开课】大厂高P面试官的面试突击指南

金三银四,突击面试季。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致对于面试的解析将帮助我们减少许多麻烦。

2021-02-25 15:00:14

文章图4

Java面试题:volatile作用,指令重排相关

多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据

2021-02-24 17:24:19