從哪裏開始Java程序的執行?我聽到人們從主要的方法說它。我認爲執行從靜態塊開始。我對嗎??從哪一行開始執行Java程序?它是主要的方法嗎?
回答
這是一個java程序的啓動方法:
public static void main(String[] args){
...
}
主要方法是入口點到您的程序。如果包含「main」方法的類具有需要初始化的靜態成員或靜態代碼塊,則將在「main」方法之前執行。
看看這個示例代碼:
public class Test {
private static Object obj = new Object();
public static void main(String[] args) {
System.out.println("test");
}
}
如果你把一個斷點在對象初始化行,你會看到它的println線之前運行。
這是唯一的答案,其中作者實際上_read_被問到什麼。這就是在同一個類「main」中的靜態塊是否在它之前被執行。 – 2013-04-07 14:38:36
我是對還是錯?我在viva中表示,執行從一個java程序中的靜態塊開始。 – user2096592 2013-04-07 14:38:36
如果靜態代碼是包含「main」方法的類的一部分,那麼您是對的。這是我認爲唯一正確的情況。 – Avi 2013-04-07 14:40:08
這個PROGRAMM的輸出:
public class XXX {
static YYY dependend = new YYY();
static {
System.out.println("3");
}
public static void main(String[] args) {
System.out.println("4");
}
}
class YYY {
static {
System.out.println("1");
}
YYY(){
System.out.println("2");
}
}
,當然
1
2
3
4
所以:你的程序的切入點是main
。但是之前有代碼被執行。並且沒有必要將這個「在主要代碼之前執行」的代碼放在同一個類中。此代碼也不需要在靜態初始化器中(請參閱「2」)。
我可以說執行和輸入點都是不同的東西嗎? – user2096592 2013-04-10 13:30:00
是的,他們是不同的東西。 – 2013-04-10 17:15:25
靜態塊在初始化類時執行。對於包含main
方法的類,它將在調用此方法之前,因爲類必須在使用它的任何方法之前進行初始化。對於其他類,如果該類不需要進行初始化,則它可以晚於或不再初始化。
一個Java應用程序將通過主方法被正常初始化:當JVM加載這個類
public static void main(String... args){
System.out.println("Executing my application...");
}
靜態塊將被執行。如果沒有主要方法,則無法啓動應用程序,否則JVM將顯示錯誤消息。
理論上可以用靜態塊(example)來執行你的代碼。但是,初始化應用程序是一種不好的方式,因爲doSomethingElse
方法可能會被其他腳本調用,該腳本不想創建gui(或者您在初始化方法中執行的任何操作)。例如:
class Test2 extends Object{
public static void doSomething(){
System.out.println("Calling Test's doSomethingElse method.");
Test.doSomethingElse();
}
}
的Test2的doSomething方法只需要呼叫doSomethingElse
,但它創建GUI的方法也被稱爲,因爲該類Test
由JVM加載。當JVM加載一個類 - 並且該類有一個靜態塊 - 靜態塊將在第一時間被調用。測試的靜態塊現在調用executingClass
方法和圖形用戶界面將被創建(但Test2的希望只能調用doSomethingElse
最後,你不應該使用靜態塊來初始化您的應用程序:
- 靜塊只能用於創建該類所需的東西。
main
方法也是必需的。- 它可能有不可預知的影響。
- 1. 爲java主要方法執行創建了多少個線程?
- 2. 這是Java執行程序時調用的第一個方法嗎?
- 3. 哪種方法用於終止Java程序之間的執行?
- 4. java可以優先執行哪個方法並按哪個順序執行?
- 5. 沒有主要方法的Java程序
- 6. 執行程序從Java
- 7. CUDA線程按照它們開始的相同順序執行
- 8. 主要方法有兩個類,它們將首先執行?
- 9. 執行流程從apache模塊開始到哪裏?
- 10. 計劃執行程序的計劃方法只執行一次
- 11. JDK 6:有沒有辦法運行一個新的java進程,執行指定類的主要方法
- 12. 主要方法執行而不執行靜態塊
- 13. 什麼是程序中斷?它從哪裏開始,0x00?
- 14. 計算機開機時:它如何知道它需要從哪個指令開始執行?
- 15. 什麼是Java應用程序開始執行時spwaned的線程?
- 16. Java程序不確定在哪裏以及如何執行主要方法,同時使用靜態布爾
- 17. Java要求執行默認方法
- 18. 開始執行
- 19. 程序執行需要.OCA文件嗎?
- 20. 想要運行C程序可以從java執行
- 21. 哪個線程執行方法?
- 22. 空閒線程在Java執行程序中執行CPU執行時間嗎?
- 23. 我們可以用主要方法調試Java程序嗎?
- 24. 靜態方法的執行順序(JAVA)
- 25. 在java中創建一個* .exe應用程序,執行它需要安裝java?
- 26. 程序執行'ret'但不執行它
- 27. 從Java執行AppleScript的最佳方法
- 28. 在哪裏添加主要方法Java
- 29. 從哪裏開始進行QuickBooks開發?
- 30. 執行從一個應用程序控制器的方法
我是對還是錯?我在viva中表示,執行從一個java程序中的靜態塊開始。 – user2096592 2013-04-07 14:40:38
是的,你是正確的,但不是靜態集團,它應該是一個靜態方法(主要方法) – TheEwook 2013-04-07 14:42:15