关于静态的Java问题

Can*_*ner 7 java static

我今天在代码中遇到了这个错误,需要一段时间来计算.我发现它很有趣所以我决定分享它.以下是问题的简化版本:

public class Test {

    static
    {
      text = "Hello";
    }

    public static String getTest() {
      return text + " World";
    }

    private static String text = null;
}
Run Code Online (Sandbox Code Playgroud)

猜猜是什么Test.getTest();回报?为什么?

ssh*_*nin 18

它应该打印"零世界".静态初始化按列出的顺序完成.如果您将声明移动到高于静态块,则应获得"Hello World".

  • 你先生值得一个赞成 (3认同)
  • `运行时系统保证静态初始化块按它们在源代码中出现的顺序调用.http://download.oracle.com/javase/tutorial/java/javaOO/initial.html (2认同)