何时调用实例init块?

and*_*and 2 java

考虑以下代码:

public class Main {


 static String s = "-";

 public static void main (String [] args){

     go();
     System.out.println(s);

     Main m = new Main();
 }
 {go();}

 static {go();}
 static void go(){s+="s";}
}
Run Code Online (Sandbox Code Playgroud)

它的输出是:

-ss
Run Code Online (Sandbox Code Playgroud)

从不调用实例init块,为什么?

Chs*_*y76 5

它被称为 - 你打印后s.在创建实例时调用实例初始值设定项.

  • 如果你只是要说同样的话,那就先投票给那个先说出来然后再添加评论的人.添加另一个"System.out.println(s);" 到你的"主"块的最后,你会看到"-sss"作为输出. (2认同)