首页 > 代码库 > 各种问题收集
各种问题收集
1.下面运行结果是什么?解释为什么
public class Base { Base() { preProcess(); } void preProcess() {} }
public class Derived extends Base { public String whenAmISet = "set when declared"; @Override void preProcess() { whenAmISet = "set in preProcess()"; } }
ublic class Main { public static void main(String[] args) { Derived d = new Derived(); System.out.println( d.whenAmISet ); } }
运行结果:
set when declared
为什么是这个结果?
...
2.阿里笔试题, 下面运行结果是什么?解释为什么是这样?
public class Alibaba { public static int k = 0; public static Alibaba t1 = new Alibaba("t1"); public static Alibaba t2 = new Alibaba("t2"); public static int i = print("i"); public static int n = 99; private int a = 0; public int j = print("j"); { print("构造块"); } static { print("静态块"); } public Alibaba(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++i; ++n; } public static int print(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n; return ++i; } public static void main(String args[]) { Alibaba t = new Alibaba("init"); } }
运行结果:
1:j i=0 n=0 2:构造块 i=1 n=1 3:t1 i=2 n=2 4:j i=3 n=3 5:构造块 i=4 n=4 6:t2 i=5 n=5 7:i i=6 n=6 8:静态块 i=7 n=99 9:j i=8 n=100 10:构造块 i=9 n=101 11:init i=10 n=102
3.
public class Singleton { private static Singleton singleton = new Singleton(); public static int counter1; public static int counter2 = 0; private Singleton() { counter1++; counter2++; } public static Singleton getInstance() { return singleton; } }
public class Test { public static void main(String[] args){ Singleton singleton = Singleton.getInstance(); System.out.println(singleton.counter1); System.out.println(singleton.counter2); } }
运行结果:
1 0
为什么呢?
明日解释为啥是上面的结果....
各种问题收集
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。