做java面试题的过程中遇见比较有趣的题

来源:互联网 发布:大数据金融的风险 编辑:程序博客网 时间:2024/05/01 18:45

1.关于继承

public class Dervied extends Base {    private String name = "dervied";    public Dervied() {        tellName();        printName();    }        public void tellName() {        System.out.println("Dervied tell name: " + name);    }        public void printName() {        System.out.println("Dervied print name: " + name);    }    public static void main(String[] args){            Dervied d = new Dervied();                }}class Base {        private String name = "base";    public Base() {        tellName();        printName();    }        public void tellName() {        System.out.println("Base tell name: " + name);    }        public void printName() {        System.out.println("Base print name: " + name);    }}

输出结果:Dervied tell name: null
Dervied print name: null
Dervied tell name: dervied
Dervied print name: dervied

原因:未知?


2.关于自动装箱


Integer a = new Integer(3);          Integer b = 3;              // 将3自动装箱成Integer类型          int c = 3;          System.out.println(a == b); // false 两个引用没有引用同一对象          System.out.println(a == c); // true a自动拆箱成int类型再和c比较          System.out.println(b == c);

结果:false
true
true

原因:这里是陷入了逻辑误区,当进行b==c时,其实触发了自动拆箱,通a==c原理一样


希望看到的朋友帮忙解答一下



0 0
原创粉丝点击