中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的main方法必須是public static void的原因是什么

發布時間:2021-10-25 11:37:59 來源:億速云 閱讀:275 作者:iii 欄目:編程語言

這篇文章主要介紹“Java中的main方法必須是public static void的原因是什么”,在日常操作中,相信很多人在Java中的main方法必須是public static void的原因是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中的main方法必須是public static void的原因是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在Java中,想必所有人都不會對main方法感到陌生,main方法是Java應用程序的入口方法。程序運行時,要執行的第一個方法就是main方法。

在使用Java寫下第一個hello world的時候,我們需要創建一個main方法,當我們使用Spring Boot啟動一個web應用的時候,我們也同樣需要一個main方法。

當我們在Intellij IDEA中想要創建main 方法的時候,只需要輸入psvm就會自動幫忙創建一個main方法:

Java中的main方法必須是public static void的原因是什么

我們得到一個main方法后,不知道你有沒有發現,任何時候,我們要創建的main方法的形式都是一樣的:

public static void main(String[] args) {

}
 

首先都是public的、都是static的,返回值都是void,方法名都是main,入參都是一個字符串數組。

以上的方法聲明中,唯一可以改變的的部分就是方法的參數名,你可以把args改成任意你想要使用的名字。

當然,main方法還可以寫成以下形式,不過其實沒啥區別:

public static void main(String... args) {

}
 

那么,不知道大家有沒有想過,為什么main方法必須得是public static void類型的,他的參數又必須得是一個字符串數組呢?

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

   
Java虛擬機如何啟動    

在《Java語言規范》中,對于Java虛擬機的啟動給出了明確的定義:Java虛擬機是通過加載指定的類,然后調用該類中的main方法而啟動的。

也就是說,通過調用某個指定類的main方法,傳遞給他單個的字符串數組參數,就可以啟動Java虛擬機。

一個main方法想要被執行,需要經過幾個步驟,首先對應的類需要被虛擬機加載,然后需要進行鏈接和初始化、之后才是調用main方法。

那么一個方法想要被調用,根據他的訪問限定符以及方法類型不同,被調用的條件也是不同的。

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

   
為什么 main 方法是公有的(public)?    

Java中,可以使用訪問控制符來保護對類、變量、方法和構造方法的訪問。Java 支持 4 種不同的訪問權限。

default (即默認,什么也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。

private : 在同一類內可見。使用對象:變量、方法。注意:不能修飾類(外部類)

public : 對所有類可見。使用對象:類、接口、變量、方法

protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。注意:不能修飾類(外部類)。

以上四種控制符都可以用來修飾方法,但是被修飾的方法的訪問權限就不同了。

而對于main方法來說,我們需要通過JVM直接調用他,那么就需要他的限定符必須是public的,否則是無法訪問的。

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

   
為什么 main 方法是靜態的(static)?    

static是靜態修飾符,被他修飾的方法我們稱之為靜態方法,靜態方法有一個特點,那就是靜態方法獨立于該類的任何對象,它不依賴類特定的實例,被類的所有實例共享。只要這個類被加載,Java虛擬機就能根據類名在運行時數據區的方法區內定找到他們。

而對于main方法來說,他的調用過程是經歷了類加載、鏈接和初始化的。但是并沒有被實例化過,這時候如果想要調用一個類中的方法。那么這個方法必須是靜態方法,否則是無法調用的。

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

   
為什么 main 方法沒有返回值(void)?    

如果大家對于C語言和C++語言有一定的了解的話,就會知道,像 C、C++ 這種以 int 為 main 函數返回值的編程語言。

這個返回值在是程序退出時的 exit code,一般被命令解釋器或其他外部程序調用已確定流程是否完成。一本正常情況下用 0 返回,非 0 為異常退出。

而在Java中,這個退出過程是由JVM進行控制的,在發生以下兩種情況時,程序會終止其所有行為并退出:

1、所有不是后臺守護線程的線程全部終止。

2、某個線程調用了Runtime類或者System類的exit方法,并且安全管理器并不禁止exit操作。

上面的兩種情況中,第二種情況一旦發生,JVM是不會管main方法有沒有執行完的,他都會終止所有行為并退出,這時候main方法的返回值是沒有任何意義的。

所以,main方法的返回值就被固定要求為void。

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

Java中的main方法必須是public static void的原因是什么

   
為什么 main 方法的入參是字符串數組(String[])    

Java應用程序是可以通過命令行接受參數傳入的,從命令行傳遞的參數可以在java程序中接收,并且可以用作輸入。

因為命令行參數最終都是以字符串的形式傳遞的,并且有的時候命令行參數不止一個,所以就可能傳遞多個參數。

這時候,作為Java應用程序執行的入口,main方法就需要能夠接受這多個字符串參數,那么就使用字符串數組了。

到此,關于“Java中的main方法必須是public static void的原因是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民乐县| 夏邑县| 东台市| 星子县| 通渭县| 横山县| 临漳县| 温泉县| 高清| 汤原县| 女性| 高雄市| 博罗县| 邵阳市| 珲春市| 洞头县| 华阴市| 宁都县| 思茅市| 武平县| 乐东| 平阳县| 牟定县| 乐陵市| 革吉县| 乌审旗| 漳州市| 日照市| 囊谦县| 巴里| 睢宁县| 郁南县| 正阳县| 封开县| 上高县| 大石桥市| 女性| 皮山县| 林州市| 普洱| 古蔺县|