java中main函數(shù)你知道多少
前言
前段時間看到一道面試題:“main函數(shù)可以被重載么?”,當(dāng)時就蒙圈了,怎么還會有這種面試題,現(xiàn)在面試官都這么變態(tài)么?雖然變態(tài)不過還是挺感興趣的,于是就復(fù)習(xí)了一遍基礎(chǔ)題 [此處壞笑表情]
main介紹
我們開始學(xué)習(xí)java程序的時候,最先拍得一段代碼肯定是main函數(shù),main函數(shù)的格式如下:
public static void main(String[] args){}首先針對 main 方法的格式定義:
「public」 :main 方法是啟動的時候由 JVM 進(jìn)行加載的,public 的可訪問權(quán)限是最高的,所以需要聲明為 public;
「static」 :方法的調(diào)用要么是通過對象,要么是通過類,而 main 方法的話因為是由虛擬機調(diào)用的,所以無需生成對象,那么聲明為 static 即可;
「main」 :至于為什么方法名稱叫 main,我想應(yīng)該是參考的是 C 語言的方法名吧,畢竟java的鼻祖原先是寫C的;
「void」 :main 方法退出時,并沒有需要有相關(guān)返回值需要返回,所以是 void;
「String[]」 :此字符串?dāng)?shù)組用來運行時接受用戶輸入的參數(shù);
這時候大家發(fā)現(xiàn)了沒有,main方法和其他的靜態(tài)方法是一樣的。
main可以被重載嗎
直接上代碼

運行成功,所以除了 JVM 規(guī)定的作為應(yīng)用程序入口的 main 方法之外,其他的main方法都是比較普通的方法
main可以被繼承嗎
繼續(xù)上代碼,定義一個HelloMeta繼承父類HelloWorld

顯然子類還是運行了父類的main方法。那么我們再重寫下子類的方法

還是可以運行子類中的main方法
main可以被調(diào)用嗎
還是上代碼吧

可以看到main方法被callVerification方法調(diào)用了,不過中間因為沒有退出方法,導(dǎo)致死循環(huán),程序崩了
總結(jié)
除了main方法作為JVM應(yīng)用程序的入口比較特殊外,其他情況下與正常的靜態(tài)方法是沒什么區(qū)別的。
到此這篇關(guān)于java中main函數(shù)你知道多少的文章就介紹到這了,更多相關(guān)java main函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)紀(jì)元秒和本地日期時間互換的方法【經(jīng)典實例】
這篇文章主要介紹了Java實現(xiàn)紀(jì)元秒和本地日期時間互換的方法,結(jié)合具體實例形式分析了Java日期時間相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
java數(shù)字圖像處理基礎(chǔ)使用imageio寫圖像文件示例
這篇文章主要介紹了Java 2D的圖像處理API,文章討論和提及的API都是基于JDK6的,Java中寫一個圖像文件使用ImageIO對象即可,下面看代碼吧2014-01-01
多個SpringBoot項目采用redis實現(xiàn)Session共享功能
這篇文章主要介紹了多個SpringBoot項目采用redis實現(xiàn)Session共享,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
解決FeignClient發(fā)送post請求異常的問題
這篇文章主要介紹了FeignClient發(fā)送post請求異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

