Java main方法中的String[] agrs
阿新 • • 發佈:2021-01-11
在每一個學習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
SpringBoot可以通過這個字串陣列引數,通過java
命令引數的方式,在不同的環境下實現不同的應用配置。
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}