解決java main函數中的args數組傳值問題

這幾天面試中有遇到關於main數組中的args數組傳值的問題,一般是從命令提示符中傳值,也可以直接在java代碼中賦值。

而且這個數組的長度是動態的,根據傳值的個數確定數組的長度。

1.從命令提示符中傳值

我在桌面新建瞭一個文本文檔重命名為TestMain.java,代碼如下

public class TestMain {  
  public static void main(String[] args) { 
    System.out.println("hello "+args[0]); 
    System.out.println("welcome "+args[1]); 
  }  
} 

按住shift在桌面單擊鼠標右鍵,在此處運行命令提示符

輸入命令javac TestMain.java編譯成功後,在運行java TestMain aa bb cc dd

截圖如下

此時如果輸出args.length長度應該為4

2.直接在java代碼中賦值,eclipse中代碼如下

//測試java中main函數args數組的使用
public class TestMainArgs {
 
 /**
 * @param args
 */
 public static void main(String[] args) {
 args = new String[]{"abc","def","ghi"};
 System.out.println(args.length);
 System.out.println(args[0]);
 
 }
 
}

輸出結果是

3

abc

補充:Java中String [] args中的args是什麼意思

String args[] 與 String[] args 沒有區別,都可以執行,但推薦使用 String[] args,這樣可以避免歧義和誤讀。

Java 中args一般存在main主類方法內,String args[ ]或者String[ ] args表示給主方法傳一個字符串數組. 而args是一個字符串數組的變量名,不是關鍵字,是arguments的縮寫,隻是一個默認名,一般都習慣性照寫.

如下:

1. 可以從run config裡面設置參數

如下圖:

2. 拿到這個args設置的剛才的參數“20 30”,打印出來:

3. 如果不設置參數直接輸出args[0]會報錯

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0

at args參數問題.ArgsTest.main(ArgsTest.java:8)

如圖:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。