标签:override counter color rri print [] oid err return
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
为什么呢?
明日解释为啥是上面的结果....
标签:override counter color rri print [] oid err return
原文地址:http://www.cnblogs.com/NewMan13/p/6206151.html