Java中的main方法
生活随笔
收集整理的這篇文章主要介紹了
Java中的main方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
在一個Java應用程序中,通常程序的入口是一個main方法,它被聲明為公有靜態方法,參數是一個字符串數組,返回值為Void類型。這個方法有許多值得研究的地方,今天就來淺顯的測試一些用例,看看main方法在不同情況下的表現。
一、main方法的第一個參數
public class TestMain{public static void main(String[] args){System.out.println(args[0]);} }如上這段代碼,是最基本的Java類結構。在這個TestMain類中,僅僅存在一個main方法,main方法也只有一行代碼:打印字符串數組參數中的第一個參數。先看下運行結果:可以看出,在Java中,命令行傳入的參數保存在main方法的參數args中。與C/C++不同的是,args中并不包含程序名稱。
二、不提供參數的main方法
public class TestMain{public static void main(){System.out.println("Success!");} }如上代碼,沒有給main方法提供args參數。首先要關注的是,這樣一個程序,是否能夠編譯通過,其次才是它的運行結果。顯然,沒有字符串數組參數的main方法可以編譯通過,但在執行時卻拋出了NoSuchMethodError異常,提示找不到主方法。
三、私有的main方法
public class TestMain{private static void main(String[] args){System.out.println("Hello World!");} }這段代碼中,main方法的修飾符改為了private,即私有方法。來看下編譯和運行結果:與無參的main方法一樣, 私有的main方法也可以編譯通過,同樣在運行期拋出了NoSunchMenthodError異常。
四、非靜態main方法
public class TestMain{public void main(String[] args){System.out.println("Hello World!");} }非靜態main方法是移除了main方法前的修飾符static后的方法,首先看下編譯和運行情況:同樣的, 沒有static修飾的main方法也可以編譯通過,在運行期拋出了main方法不是類中的static方法錯誤。
五、返回類型為int的main方法
public class TestMain{public static int main(String[] args){System.out.println("Hello World!");return 0;} }在C/C++中,main函數可以不指定返回類型,也可以指定返回類型為void或int,甚至推薦指定main函數的返回類型為int。如果在Java中指定main方法的返回類型為int,結果會是怎么樣的呢?很遺憾, 在Java中,main方法的返回類型必須為void,其它返回類型都會導致編譯后的程序,在運行期拋出main方法返回類型必須為空類型的錯誤。
六、省略void的main方法
public class TestMain{public static main(String[] args){System.out.println("Hello World!");} }C/C++中main方法可以省略void,如果在Java中也省略void,結果又是怎么樣的呢?可以看出, 不提供void返回類型的main方法,在編譯期就拋出了方法聲明無效,需要返回類型的錯誤。
七、不帶參數的命令行,main方法的數組參數是null還是空數組
public class TestMain{public static void main(String[] args){String result = null == args ? "NULL" : ("length of args is" + args.length);System.out.println(result);} }上面這個測試中,如果main方法的字符串數組參數args為null,輸出NULL,否則就輸出args的長度。如上, main方法的字符串數組參數,即使在命令行運行時沒有傳入參數,也不會是null,它會是一個長度為0的空數組。
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
轉載于:https://my.oschina.net/treenewbee/blog/489955
總結
以上是生活随笔為你收集整理的Java中的main方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN分支与合并
- 下一篇: FFmpeg 2.1 试用(新版支持HE