<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          阿里二面:main 方法可以繼承嗎?

          共 1460字,需瀏覽 3分鐘

           ·

          2022-01-03 07:25

          1、while(1) 和 for(;;)有什么區(qū)別?
          2、使用MySQL,請用好 JSON 這張牌!
          3、延時任務(wù)實現(xiàn)方案
          4、服務(wù)端如何防止重復支付
          5、五年工作經(jīng)驗總結(jié) 16 條的代碼規(guī)范
          阿里二面:main 方法可以繼承嗎?
          昨天,微信群里一位網(wǎng)友,在群里發(fā)了自己面試阿里的過程。其中一個面試,他在群里 PUA 其他網(wǎng)友。這道面試題就是:Java 中的 main 方法可以繼承嗎?
          我們一開始學習 Java 程序的時候,最先跑的一段代碼肯定是 main 方法,main 方法的格式如下:
          public?static?void?main(String[]?args)?{

          }
          那么 main 方法有什么特殊的地方呢?今天我們來簡單看一下。
          首先針對 main 方法的格式定義:
          「public」 :main 方法是啟動的時候由 JVM 進行加載的,public 的可訪問權(quán)限是最高的,所以需要聲明為 public;
          「static」 :方法的調(diào)用要么是通過對象,要么是通過類,而 main 方法的話因為是由虛擬機調(diào)用的,所以無需生成對象,那么聲明為 static 即可;
          「main」 :至于為什么方法名稱叫 main,我想應(yīng)該是參考的是 C 語言的方法名吧;
          「void」 :main 方法退出時,并沒有需要有相關(guān)返回值需要返回,所以是 void;
          「String[]」 :此字符串數(shù)組用來運行時接受用戶輸入的參數(shù);因為字符串在 Java 中是具有通用普遍性的,所以使用字符串是最優(yōu)選擇;數(shù)組的話,因為我們的參數(shù)不止一個,所以數(shù)組肯定是合適的;
          不過自 JDK1.5 引入動態(tài)參數(shù)后,String[]數(shù)組也可以使用String... args來實現(xiàn)。
          public?static?void?main(String...?args){

          }
          除了上面 JVM 規(guī)定的這個 main 方法比較特殊外,其他的 main 方法與普通的靜態(tài)方法是沒有什么不同的。

          main方法能重載么?

          這個是可以的,比如說我們給它重載一個方法:
          public?class?Main?{
          ????public?static?void?main(String?args)?{
          ????????System.out.println("hello?world:"?+?args);
          ????}

          ????public?static?void?main(String[]?args)?{
          ????????main("test");
          ????}
          }
          編譯運行,很顯然沒啥問題,除了 JVM 規(guī)定的作為應(yīng)用程序入口的 main 方法之外,其他的 main 方法都是比較普通的方法。

          main方法能被其他方法調(diào)用么?

          public?class?Main?{
          ????private?static?int?times?=?3;

          ????public?static?void?main2(String[]?args)?{
          ????????times--;
          ????????main(args);
          ????}

          ????public?static?void?main(String[]?args)?{
          ????????System.out.println("main方法執(zhí)行:"?+?times);
          ????????if?(times?<=?0)?{
          ????????????System.exit(0);
          ????????}
          ????????main2(args);
          ????}
          }
          運行一下代碼,可以發(fā)現(xiàn)代碼能正常執(zhí)行:
          main方法執(zhí)行:3
          main方法執(zhí)行:2
          main方法執(zhí)行:1
          main方法執(zhí)行:0
          所以說即使是作為應(yīng)用程序入口的 main 方法,也是可以被其他方法調(diào)用的,但要注意程序的關(guān)閉方式,別陷入死循環(huán)了。

          main方法可以繼承么?

          我們以前了解過,當類繼承時,子類可以繼承父類的方法和變量,那么當父類定義了 main 方法,而子類沒有 main 方法時,能繼承父類的 main 方法,從而正常的運行程序么?
          public?class?Main?{
          ????public?static?void?main(String[]?args)?{
          ????????System.out.println("hello?world");
          ????}
          }
          定義子類:
          public?class?Main2?extends?Main?{
          }
          這時候我們運行子類 Main2,可以發(fā)現(xiàn),同樣打印了hello world,這說明 main 方法也是可以繼承的。那么還有一種隱藏的情況也很顯然了,子類定義自己的 main 方法,隱藏掉父類中的實現(xiàn),那么這也是可以的。
          public?class?Main2?extends?Main?{
          ????public?static?void?main(String?[]?args)?{
          ????????System.out.println("hello?world?Main2");
          ????}
          }
          這時候就會打印子類自己的內(nèi)容了:hello world Main2。
          這么來看,除了main方法作為應(yīng)用程序的入口比較特殊外,其他情況下與正常的靜態(tài)方法是沒什么區(qū)別的。

          最近熱文閱讀:

          1、while(1) 和 for(;;)有什么區(qū)別?
          2、使用MySQL,請用好 JSON 這張牌!
          3、延時任務(wù)實現(xiàn)方案
          4、服務(wù)端如何防止重復支付
          5、五年工作經(jīng)驗總結(jié) 16 條的代碼規(guī)范
          6、為什么我勸你放棄了Restful API?
          7、Java8 Stream:2萬字20個實例,玩轉(zhuǎn)集合的篩選、歸約、分組、聚合
          8、公司規(guī)定所有接口都用 POST請求,這是為什么?
          9、為什么阿里強制 boolean 類型變量不能使用 is 開頭?
          10、面試官:InnoDB中一棵B+樹可以存放多少行數(shù)據(jù)?
          關(guān)注公眾號,你想要的Java都在這里

          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天日天天干天天射天天操 | 亚洲精品国产AV婷婷在 | 一级性爱无码 | 黑人无码精品黑人,黑人 | 婷婷五月天丁香成人社区 |