静态加载问题

来源:互联网 发布:淘宝用是谁写的 编辑:程序博客网 时间:2024/05/19 01:30

阿里笔试题

连接:http://blog.csdn.net/geekdonie/article/details/12260599

public class Test {    public static int k = 0;    public static Test t1 = new Test("t1");    public static Test t2 = new Test("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 Test(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[]) {        Test t = new Test("init");    }}


结果输出:

1:j   i=0    n=02:构造块   i=1    n=13:t1   i=2    n=24:j   i=3    n=35:构造块   i=4    n=46:t2   i=5    n=57:i   i=6    n=68:静态块   i=7    n=999:j   i=8    n=10010:构造块   i=9    n=10111:init   i=10    n=102

 

笔试题2:

public class Test {    static {        int x = 5;    }        static int x, y;    public static void main(String[] args) {                x--;        myMethod();        System.out.println(x + y++ + x);    }        public static void myMethod(){        y = x++ + ++x;    }}

输出:2

0 0