App下載

Java main方法中的String[] args詳解

猿友 2021-01-11 16:15:15 瀏覽數(shù) (6994)
反饋

在每一個學(xué)習(xí)Java的同學(xué),都應(yīng)該寫過下面的這一段代碼。
public class Hello{
	public static void main(String[] args) {
		System.out.println("Hello,World!");
	}
}

在Java語言中,規(guī)定了入口函數(shù)是一個main()方法,該方法有一個String[]類型的參數(shù),但是在很多時候,很多人都使用不上這個參數(shù),也不關(guān)心為什么要寫這個參數(shù)。

那么這個字符串?dāng)?shù)組類型的參數(shù)究竟是什么東西呢?

其實很簡單,main()方法中的字符串?dāng)?shù)組類型的參數(shù)就是java命令的參數(shù),使用java命令的方式運行main()方法,會將java命令的參數(shù)入?yún)⒌絁ava main()方法的字符串?dāng)?shù)組參數(shù)中。

我們可以通過以下方式來進行驗證:

  • 1、先編寫一個Hello.java文件,文件內(nèi)容如下:
public class Hello{
	public static void main(String[] args) {
		System.out.println("==============args start============");
		for(int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}
		System.out.println("==============args end============");
	}
}
  • 2、在Hello.java文件的路徑下打開cmd命令提示符,運行javac Hello.java命令編譯該文件,這將會在對應(yīng)的文件路徑下,得到一個Hello.class字節(jié)碼文件。
  • 3、使用java Hello命令運行Hello.class文件,我們將會得到如下的運行結(jié)果:
    -
  • 4、我們這次在java命令后面添加一些參數(shù),這些參數(shù)我們可以自己定義。例如:java Hello a b c d ,我們將會得到如下的運行結(jié)果:
  • 在這里插入圖片描述
正是因為Java main()方法的這個擴展性,使得每一個開發(fā)者,可以通過自己定義一些Java命令的參數(shù),實現(xiàn)一些不同的功能。

其中SpringBoot的啟動類,其實也使用了這個特性,SpringApplication.run()方法有一個重載方法,其中第一個入?yún)⒌氖亲⒔饬薂SpringBootApplication注解的類的字節(jié)碼對象,而第二個參數(shù),即為main()方法的字符串?dāng)?shù)組參數(shù)。

SpringBoot可以通過這個字符串?dāng)?shù)組參數(shù),通過java命令參數(shù)的方式,在不同的環(huán)境下實現(xiàn)不同的應(yīng)用配置。

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

推薦好課:

Java:23天零基礎(chǔ)完全入門

Java開發(fā)實例:坦克大戰(zhàn)游戲


2 人點贊