2017-04-10 66 views
1

經過近一年的Java工作,我仍然無法向其他人或我自己解釋爲什麼我們需要這個,以及它是如何工作的。我還是不明白public static void main(string [] args)

顯然,我知道每個關鍵字都是獨立的,但我不確定整個事情。

有人能用非常簡單的語言描述嗎?

+0

它的入口點計劃採取的其餘參數調用它。 – Kayaman

+2

http://docs.oracle.com/javase/tutorial/getStarted/application/index.html#MAIN – azurefrog

+0

Google ['什麼是java main'](https://www.google.com/search?q=what + is + java + main) – Andreas

回答

4

Public:是一個訪問修飾符,它定義誰可以訪問此方法。公共意味着這個方法可以被任何類訪問(如果其他類可以訪問這個類)。

靜態:是一個關鍵字,標識與類有關的東西。這意味着給定的方法或變量不是實例相關的,而是與類相關的。可以在不創建類的實例的情況下訪問它。

Void:用於定義方法的返回類型。它定義了該方法可以返回的內容。 Void意味着方法不會返回任何值。

main:是方法的名稱。該方法名稱由JVM搜索,僅作爲具有特定簽名的應用程序的起點。

String args []:是主Method的參數。

+0

寫得很好,讓你開始使用StackOverflow。 –

0

main()方法由java發射定義:

java命令啓動一個Java應用程序。它通過啓動Java運行時環境(JRE),加載指定的類並調用該類的方法來實現此目的。該方法必須聲明爲publicstatic,它必須不返回任何值,並且它必須接受String數組作爲參數。該方法聲明有以下形式:

解釋爲什麼需要它:它開始運行Java程序必需的。
它是如何工作的:它在啓動時被啓動程序調用。

1

我知道這些已經謝謝你的回覆和讚譽。

公共

這意味着你可以從你目前在外部類調用此方法。這是必要的,因爲這種方法是由未位於Java運行時系統稱爲你當前的課程。

靜態

當JVM使得調用的主要方法有因此被稱爲它必須有靜態方法以允許從類調用現有的類中沒有對象。

無效

Java是獨立於平臺的語言,它是否會返回一些值,則該值可能意味着不同的事情不同的平臺。還有其他方法可以在多線程系統上退出程序。詳細解釋。

主要

這方法只是名字。這個名稱是固定的,並且由JVM調用它作爲應用程序的入口點。

字符串ARGS []

這些都是String類型的參數,當你運行你的Java應用程序接受。

但是爲什麼沒有像其他語言一樣調用main的simplar方法,以及爲什麼我們需要獲取參數並將其存儲爲String,而有時我們只需要調用main中的方法。

+0

我認爲你應該編輯你的問題,並添加這個問題而不是發佈一個答案。 – rjdkolb

2

其他答案是正確的,但我會盡量用英語說明。 當你創建一個程序時,java需要知道從哪裏開始程序,所以他們使用它作爲入口點。由於它是靜態方法,因此不需要實例化該類。它可以簡單地調用該方法,並知道程序啓動的位置。

+0

對於使用main的其他程序 - 是的。在C中也有main()。在Windows C++程序中,有WinMain() –

1

當您啓動一個Java程序時,JVM需要知道它應該在哪裏開始執行整個事情。這並不明顯,因爲在類路徑中有數千個Java類可用。 這就是爲什麼你必須在你的命令行中給出一個特定Java類的名字。例如

java com.stackoverflow.example.Main bla blah 

的JVM然後就加載這個類,查找其static void main(String[] args)方法,並用命令行

main(new String[]{"bla", "blah"}); 
相關問題