请帮我看看这个Java打印命令

时间:2015-08-24 08:24:41

标签: java

我是Java的新手。我对java打印顺序感到困惑。请看我的代码:

public class Test {

private static int a;  
    private int b;

    static  
    {  
        Test.a=3;  
        System.out.println(a);  
        Test t=new Test();  
        t.f();  
        t.b=1000;  
        System.out.println(t.b);  
    }  

    static  
    {  
        Test.a=4;  
        System.out.println(a);  
    }  

    public static void main(String[] args)   
    {  
    }  

    static  
    {  
        Test.a=5;  
        System.out.println(a);  
    }  

    public void f()  
    {  
        System.out.println("hhahhahah");  
    } 
}

输出是:

3
hhahhahah
1000
4
5

有人可以告诉我为什么“hhahhahah”出现在1000号之前? Java如何决定打印顺序?

2 个答案:

答案 0 :(得分:0)

这就是您在t.f()

之前致电System.out.println(t.b);的原因

t.f()打印hhahhahah

答案 1 :(得分:0)

为什么它不应该。查看代码的顺序

 Test t=new Test();  
        t.f();         //hhahhahah
        t.b=1000;  
        System.out.println(t.b);  //1000

在打印f的值之前,您调用了类Test中的方法(b)。