我無法理解以下代碼的執行情況。我想要遵循Java程序,以便我能夠理解一切如何協同工作。我在Eclipse中加強了斷點,但它不能解釋原因。代碼如下:Java靜態方法vs主要靜態方法
public class Sequence {
public Sequence() {
System.out.print("c ");
}
{
System.out.print("y ");
}
public static void main(String[] args) {
new Sequence().go();
}
void go() {
System.out.print("g ");
}
static {
System.out.print("x ");
}
}
該代碼的輸出是x y c g
。有人可以解釋爲什麼這是嗎?我認爲程序入口點是public static void main
,但它似乎static
首先執行?
你不明白什麼? – SLaks
你不明白什麼?靜態塊?它不是一個方法(在源代碼中),它是一個**初始化**塊,即。首先發生。 –
我以爲程序會先打印'c',但打印出'x'。我不明白爲什麼。 – cooldood3490