實(shí)例分析Java中public static void main(String args[])是什么意思
本文實(shí)例講述了Java中public static void main(String args[])的來龍去脈。分享給大家供大家參考,具體如下:
public static void main(String[] args)
這絕對(duì)不是憑空想出來的,也不是沒有道理的死規(guī)定,而是java程序執(zhí)行的需要。
jvm在試圖運(yùn)行一個(gè)類之前,先檢查該類是否包含一個(gè)特殊方法。這個(gè)方法必須是公有的,以便在任何位置都能訪問得到。這個(gè)方法必須是static的,因?yàn)檫@個(gè)方法不能依賴任何該類的實(shí)例即可運(yùn)行,而非static的方法,在運(yùn)行之前要先創(chuàng)建該類的實(shí)例對(duì)象。
這個(gè)方法沒有返回值。和C/C++程序不一樣,java的程序默認(rèn)都以常態(tài)結(jié)束,所以main不返回int。如果要以非常態(tài)結(jié)束程序,可以用System.exit(1)。
這個(gè)方法必須可以接受數(shù)目不定的String類型的參數(shù),因?yàn)檫\(yùn)行者可能要附加運(yùn)行參數(shù)。如java HelloWorld jack 100,這里的jack和100就是運(yùn)行參數(shù)。
為什么是String呢?因?yàn)镾tring具有普遍性。任何字面形式都可以解釋成String,而其他類型則不然(如jack就不能解釋成整數(shù)或浮點(diǎn)數(shù)),所以用String來存儲(chǔ)參數(shù)最合適。而因?yàn)閰?shù)數(shù)目不限一個(gè),所以用了數(shù)組,即String[]。在Java 1.5以后,還可以寫成String...,表示數(shù)目不定。
至于參數(shù)的變量名可以任意,只要保證在方法內(nèi)部按該變量名來獲得參數(shù)就行了,從變量的作用角度來說,叫arguments或args當(dāng)然是最合適的。
至于這個(gè)方法的名字為什么一定是main,有歷史原因,因?yàn)樽钤绲腃以main函數(shù)作為程序入口,java沿用了這個(gè)歷史傳統(tǒng)。
下面我們以一個(gè)例子一探究竟:
package test;
public class MainTest {
public static void main(String[] args)
{
for (int x=0; x<args.length; x++)
{
System.out.println(args[x]);
}
}
public static void sysInfo(){
System.out.println("call sysInfo()");
}
}
public class MainDemo {
/*
public static void main(String[] args)
public:權(quán)限修飾符,權(quán)限最大。
static:隨著MianDemo類的加載而加載,消失而消失。
void: 沒有返回值
main: 函數(shù)名,jvm識(shí)別的特殊函數(shù)名
(String[] args):定義了一個(gè)字符串?dāng)?shù)組參數(shù)
*/
public static void main(String... args)
{
String[] arr = new String[]{"zhang","li","wang","zhao"};
MainTest.main(arr);
MainTest.sysInfo();
}
/*
總結(jié):
1、main()函數(shù)是被jvm調(diào)用,jvm給main()傳了一個(gè)長度為0的字符串的數(shù)組,也就是new String[0]
2、可以通過類名.main()進(jìn)行傳值操作,因?yàn)閙ain()方法是static的。
*/
}
運(yùn)行結(jié)果:

希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談Java變量賦值運(yùn)算符及相關(guān)實(shí)例
這篇文章主要介紹了Java賦值運(yùn)算符的一些知識(shí),需要的朋友可以參考下。2017-09-09
Java中json格式化BigDecimal保留2位小數(shù)
這篇文章主要給大家介紹了關(guān)于Java中json格式化BigDecimal保留2位小數(shù)的相關(guān)資料,BigDecimal是Java中的一個(gè)數(shù)學(xué)庫,可以實(shí)現(xiàn)高精度計(jì)算,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下2023-09-09
Java通過反射將 Excel 解析成對(duì)象集合實(shí)例
這篇文章主要介紹了Java通過反射將 Excel 解析成對(duì)象集合實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
zookeeper實(shí)戰(zhàn)之實(shí)現(xiàn)分布式鎖的方法
Zookeeper實(shí)現(xiàn)分布式鎖比Redis簡單,Zookeeper有一個(gè)特性,多個(gè)線程在Zookeeper里創(chuàng)建同一個(gè)節(jié)點(diǎn)時(shí),只有一個(gè)線程執(zhí)行成功,Zookeeper主要是利用臨時(shí)有序節(jié)點(diǎn)這一特性實(shí)現(xiàn)分布式鎖,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2022-11-11
Java+Selenium調(diào)用JavaScript的方法詳解
這篇文章主要為大家講解了java在利用Selenium操作瀏覽器網(wǎng)站時(shí)候,有時(shí)會(huì)需要用的JavaScript的地方,代碼該如何實(shí)現(xiàn)呢?快跟隨小編一起學(xué)習(xí)一下吧2023-01-01

