1. 程式人生 > 其它 >Java main方法中的String[] agrs

Java main方法中的String[] agrs

技術標籤:Java基礎javajvm字串

在每一個學習Java的同學,都應該寫過下面的這一段程式碼。

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

在Java語言中,規定了入口函式是一個main()方法,該方法有一個String[]型別的引數,但是在很多時候,很多人都使用不上這個引數,也不關心為什麼要寫這個引數。

那麼這個字串陣列型別的引數究竟是什麼東西呢?

其實很簡單,main()方法中的字串陣列型別的引數就是java命令的引數,使用java命令的方式執行main()方法,會將java命令的引數入參到Java main()方法的字串陣列引數中。

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

  • 1、先編寫一個Hello.java檔案,檔案內容如下:
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命令編譯該檔案,這將會在對應的檔案路徑下,得到一個Hello.class位元組碼檔案。

  • 3、使用java Hello命令執行Hello.class檔案,我們將會得到如下的執行結果:
    -

  • 4、我們這次在java命令後面新增一些引數,這些引數我們可以自己定義。
    例如:java Hello a b c d ,我們將會得到如下的執行結果:
    在這裡插入圖片描述

正是因為Java main()方法的這個擴充套件性,使得每一個開發者,可以通過自己定義一些Java命令的引數,實現一些不同的功能。

其中SpringBoot的啟動類,其實也使用了這個特性,SpringApplication.run()方法有一個過載方法,其中第一個入參的是註解了@SpringBootApplication

註解的類的位元組碼物件,而第二個引數,即為main()方法的字串陣列引數。

SpringBoot可以通過這個字串陣列引數,通過java命令引數的方式,在不同的環境下實現不同的應用配置。

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