真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中的main方法必須是publicstaticvoid的原因是什么

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

創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)成都小程序開發(fā),網(wǎng)頁設(shè)計(jì)制作,成都做手機(jī)網(wǎng)站,成都營銷網(wǎng)站建設(shè)幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。

在Java中,想必所有人都不會(huì)對main方法感到陌生,main方法是Java應(yīng)用程序的入口方法。程序運(yùn)行時(shí),要執(zhí)行的第一個(gè)方法就是main方法。

在使用Java寫下第一個(gè)hello world的時(shí)候,我們需要?jiǎng)?chuàng)建一個(gè)main方法,當(dāng)我們使用Spring Boot啟動(dòng)一個(gè)web應(yīng)用的時(shí)候,我們也同樣需要一個(gè)main方法。

當(dāng)我們在Intellij IDEA中想要?jiǎng)?chuàng)建main 方法的時(shí)候,只需要輸入psvm就會(huì)自動(dòng)幫忙創(chuàng)建一個(gè)main方法:

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

我們得到一個(gè)main方法后,不知道你有沒有發(fā)現(xiàn),任何時(shí)候,我們要?jiǎng)?chuàng)建的main方法的形式都是一樣的:

public static void main(String[] args) {

}
 

首先都是public的、都是static的,返回值都是void,方法名都是main,入?yún)⒍际且粋€(gè)字符串?dāng)?shù)組。

以上的方法聲明中,唯一可以改變的的部分就是方法的參數(shù)名,你可以把a(bǔ)rgs改成任意你想要使用的名字。

當(dāng)然,main方法還可以寫成以下形式,不過其實(shí)沒啥區(qū)別:

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

}
 

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

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

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

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

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

   Java虛擬機(jī)如何啟動(dòng)    

在《Java語言規(guī)范》中,對于Java虛擬機(jī)的啟動(dòng)給出了明確的定義:Java虛擬機(jī)是通過加載指定的類,然后調(diào)用該類中的main方法而啟動(dòng)的。

也就是說,通過調(diào)用某個(gè)指定類的main方法,傳遞給他單個(gè)的字符串?dāng)?shù)組參數(shù),就可以啟動(dòng)Java虛擬機(jī)。

一個(gè)main方法想要被執(zhí)行,需要經(jīng)過幾個(gè)步驟,首先對應(yīng)的類需要被虛擬機(jī)加載,然后需要進(jìn)行鏈接和初始化、之后才是調(diào)用main方法。

那么一個(gè)方法想要被調(diào)用,根據(jù)他的訪問限定符以及方法類型不同,被調(diào)用的條件也是不同的。

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

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

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

Java中,可以使用訪問控制符來保護(hù)對類、變量、方法和構(gòu)造方法的訪問。Java 支持 4 種不同的訪問權(quán)限。

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

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

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

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

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

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

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

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

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

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

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

static是靜態(tài)修飾符,被他修飾的方法我們稱之為靜態(tài)方法,靜態(tài)方法有一個(gè)特點(diǎn),那就是靜態(tài)方法獨(dú)立于該類的任何對象,它不依賴類特定的實(shí)例,被類的所有實(shí)例共享。只要這個(gè)類被加載,Java虛擬機(jī)就能根據(jù)類名在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。

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

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

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

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

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

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

而在Java中,這個(gè)退出過程是由JVM進(jìn)行控制的,在發(fā)生以下兩種情況時(shí),程序會(huì)終止其所有行為并退出:

1、所有不是后臺(tái)守護(hù)線程的線程全部終止。

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

上面的兩種情況中,第二種情況一旦發(fā)生,JVM是不會(huì)管main方法有沒有執(zhí)行完的,他都會(huì)終止所有行為并退出,這時(shí)候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 方法的入?yún)⑹亲址當(dāng)?shù)組(String[])    

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

因?yàn)槊钚袇?shù)最終都是以字符串的形式傳遞的,并且有的時(shí)候命令行參數(shù)不止一個(gè),所以就可能傳遞多個(gè)參數(shù)。

這時(shí)候,作為Java應(yīng)用程序執(zhí)行的入口,main方法就需要能夠接受這多個(gè)字符串參數(shù),那么就使用字符串?dāng)?shù)組了。

到此,關(guān)于“Java中的main方法必須是public static void的原因是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


網(wǎng)頁名稱:Java中的main方法必須是publicstaticvoid的原因是什么
本文URL:http://weahome.cn/article/gipgpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部