溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中main方法的介紹和使用

發(fā)布時(shí)間:2020-06-12 19:26:37 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)java中main方法的介紹和使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Java中的main方法,是一個(gè)java應(yīng)用程序的入口,無論一個(gè)java的應(yīng)用多么復(fù)雜龐大,或是多么的小,只要他是一個(gè)可以運(yùn)行的java程序那么必然就要有一個(gè)main方法。

main方法的定義格式通常固定如下:  

public class Demo {
	public static void main(String[] args) {
		System.out.println("Hello Word");
	}}

1、為什么是公共的(public)

ans1:Java指定了一些可訪問的修飾符如:private,protected,public。每個(gè)修飾符都有它對(duì)應(yīng)的權(quán)限,public權(quán)限最大,為了說明問題,我們假設(shè)main方法是用private修飾的,那么main方法出了Demo這個(gè)類對(duì)外是不可見的。

那么,JVM就訪問不到main方法了。因此,為了保證JVM在任何情況下都可以訪問到main方法,就用public修飾。

ans2:Java設(shè)計(jì)了幾個(gè)訪問修飾符,包括:private,protected,public。 在Java中聲明為public的任何方法或變量都可以從該類的外部訪問。 而JVM訪問main方法顯然不是在類的內(nèi)部訪問,因此main方法需要定義為public的方法。

2、為什么是靜態(tài)的(static)

靜態(tài)可以讓JVM調(diào)用main方法的時(shí)候更加方便,不需要通過對(duì)象調(diào)用。關(guān)于static關(guān)鍵字我們知道的是,static關(guān)鍵字修飾的方法,可以不用通過創(chuàng)建一個(gè)實(shí)例去訪問,而是可以通過類名直接訪問。并且static修飾的方法以及變量存儲(chǔ)在虛擬機(jī)當(dāng)中的方法區(qū)當(dāng)中,而非堆內(nèi)存當(dāng)中。

那么,對(duì)于虛擬機(jī)來說也是一樣的道理。main方法定義為static的,則對(duì)于虛擬機(jī)來說,在程序啟動(dòng)之后并不需要?jiǎng)?chuàng)建一個(gè)實(shí)例,就可以去調(diào)用這個(gè)main方法。

3、為什么沒有返回值(void)

void表示main方法沒有返回值,沒有返回值的原因是因?yàn)镴ava不需要main方法向操作系統(tǒng)返回退出信息。如果main方法正常退出,那么Java應(yīng)用層序的退出代碼為0,表示成功的運(yùn)行了程序。

4、main

main的名稱不能變是為了JVM能夠識(shí)別程序運(yùn)行的起點(diǎn),main方法可以被重載,重載的main方法不會(huì)被執(zhí)行。main方法作為程序初始線程的起點(diǎn),任何其他線程均由該線程啟動(dòng)。

JVM內(nèi)部有兩種線程,非守護(hù)線程和守護(hù)線程,main方法屬于非守護(hù)線程,守護(hù)線程通常由JVM自己使用,Java程序也可以表明自己的線程是守護(hù)線程。當(dāng)程序中所有的非守護(hù)線程終止時(shí),JVM退出。也可以用Runtime類或者System.exit()來退出。

5、String [] args

String[] args,是main方法中唯一可以改變的地方!args是arguments的縮寫,只是一個(gè)變量默認(rèn)名,習(xí)慣性寫作它,但是也可以改變的,只要符合命名規(guī)則隨便你寫成什么。

在使用集成開發(fā)工具的今天,String[] args更像是一種擺設(shè)了,很多初學(xué)者都不知道它的作用,其實(shí)它是程序運(yùn)行傳入的一個(gè)參數(shù)組。

看完上述內(nèi)容,你們對(duì)java中main方法的介紹和使用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI