我的一道Java基础面试题目

悠悠然然 发布于 2014/06/03 15:23
阅读 2K+
收藏 16

我有一道经典的试题,倒在上面的人许多,今天就剧透了,呵呵:

public class A {
    public A(){
        System.out.println("A3");
    }
    {
        System.out.println("A1");
    }
    static {
        System.out.println("A2");
    }
}

再写个B类

public class B extends A {
    public B(){
        System.out.println("B3");
    }
    {
        System.out.println("B1");
    }
    static {
        System.out.println("B2");
    }


    public static void main(String[] args) {
        A a1=new B();
        B a2=new B();
    }
}

然后执行B类的main方法,请给出在控制台输出的内容是怎样的。

呵呵,请不要在电脑上执行,请不要看下面别人的回答,直接回复贴子给出答案。

加载中
1
Shazi199
Shazi199

1.先执行静态代码块:2

2.静态代码块按类加载的顺序:A B

3.先初始化父类再初始化子类:A B

4.先执行类代码块再执行构造方法:1 3

综上:A2 B2 A1 A3 B1 B3 A1 A3 B1 B3

YYYYYYweoriusdilfj
YYYYYYweoriusdilfj
好评!
0
TimZhou
TimZhou

A2 B2 A1 A3 B1 B3 A1 A3 B1 B3      (省略换行,我先给答案 再去运行)


0
Biblical
Biblical

A2 , A1 , B2 , B1 , B3

B2 , B1 , B3

0
TimZhou
TimZhou
我给的答案是正确的
RegnoiX
RegnoiX
回复 @YYYYYYweoriusdilfj : extends
YYYYYYweoriusdilfj
YYYYYYweoriusdilfj
答案确实是这个,可是为什么会显示A3呢?按理说,A的构造函数不会被呼叫啊。。。
0
匿名网友
匿名网友
A2B2A1A3B1B3A1A3B1B3
0
steemit
steemit
A2 B2 A1 A3 B1 B3 A1 A3 B1 B3
0
抢小孩糖吃
抢小孩糖吃
谁能告诉我这道题有毛意义?在实际开发过程中
悠悠然然
悠悠然然
回复 @抢小孩糖吃 :首先,我肯定你的解决问题有N种办法的说法。但是如果连基本的语法技巧都不知道,在落地的时候都会有问题。 就好比一个非常NB的架构师,设计了1000层的高楼,没有任何问题,但是最后还得落在砖头、水泥钢筋上。你觉得呢?
抢小孩糖吃
抢小孩糖吃
回复 @悠悠然然 : 这些内容应当通过静态类与单例去解决,而不是使用这些看似厉害的马步,面向对象的主体思想就是详细拆分。出题人刷不懂这题的人竟然产生傲娇与优越感。通过架构师的能力降低开发难度,通过码农进行代码量产过程。开发更需要注重设计模式与算法,我热爱开发,会使用不同语言解决不同问题,虽然没看过你的Tiny,但我的思路和spring boot是很像的。很高兴和你进行思想的碰撞。
悠悠然然
悠悠然然
回复 @卜祥龙 : 扎马步时间长,表示你下盘稳定,表示你肌肉发达,表示你持久力强,表示你不容易被踢倒,表示你基本功扎实。 就好比,扎马步很厉害,证明一般情况下他都相当强。 不会扎马步,还去跟扎马步好的去比划,绝大多数情况代表是去找死。
悠悠然然
悠悠然然
呵呵,对于你的问题,我只能一笑而过。 不过我觉得你还是慎重考虑下是否继续编程方面的工作。
降龙罗汉
降龙罗汉
谁能告诉我扎马步有毛意义?在实际打架中 现实是,就是有人能准确说出来,不服不行
下一页
0
zbbmaster
zbbmaster
赞一个,楼主多发发面试题也挺好的 复习下基础
0
八木
八木

a2b2a1a3b1b3a1a3b1b3

0
DNA
DNA
挺有意思的,难,看懵了我
返回顶部
顶部