最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java文件執(zhí)行順序、main程序入口的理解

 更新時間:2019年03月14日 10:59:34   作者:Gxx2018  
這篇文章主要介紹了Java文件執(zhí)行順序、main程序入口的理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在我們通過JVM編譯Java后綴名的文件時,JVM首先尋找入口(main方法)

public static void main(String[] args)

1、由于在入口時,未調(diào)用任何對象,該方法只能設(shè)置為static靜態(tài)
2、JVM為Java的最底層,所以即使有返回結(jié)果,結(jié)果也無處可去,因此該方法必然是void無返回值
3、由于main方法是入口,被JVM自動調(diào)用,只有將該方法設(shè)置為public公有級別才能對JVM可見
綜上,入口main方法只能寫為

public static void main(String[] args)

在我們沒有寫main方法時,系統(tǒng)會自動會為我們添加一個無參mian主方法,該方法的添加位置為public類中首行(之前也提到過,只有添加在public級別中才對JVM可見,可以自動調(diào)用)

注意:如果在java文件中未包含任一公共類(public class),此文件依然可以通過編譯,但是主動運行由于找不到public class,就無法自動添加main方法,JVM找不到程序入口,運行會報錯,即編譯通過運行報錯,缺少public class的文件需要等待被其它java文件調(diào)用,無法作為入口。

package j2se;

class X{
  Y y=new Y();
  public X(){
    System.out.print("X");
  }
}
class Y{
  public Y(){
    System.out.print("Y");
  }
}
//public class Z extends X{
 // Y y=new Y();
 // public Z(){
  //   System.out.print("Z");
  // }
  // public static void main(String[] args) {
  //   new Z();
  // }
//}

報錯:

錯誤: 找不到或無法加載主類 j2se.Z
原因: java.lang.ClassNotFoundException: j2se.Z

當(dāng)我們加上public類(public class)后,編譯運行通過,根據(jù)返回結(jié)果可以清楚看到程序的執(zhí)行順序,代碼如下:

package j2se;

class X{
  Y y=new Y();
  public X(){
    System.out.print("X");
  }
}
class Y{
  public Y(){
    System.out.print("Y");
  }
}
public class Z extends X{
  Y y=new Y();
  public Z(){
    System.out.print("Z");
  }
  public static void main(String[] args) {
    new Z();
  }
}

運行結(jié)果:YXYZ

 根據(jù)這個運行結(jié)果,我們可以看出,程序運行后JVM編譯順序為,JVM直奔public class中main()方法作為入口,并開始編譯執(zhí)行

public static void main(String[] args)

以上所述是小編給大家介紹的Java文件執(zhí)行順序、main程序入口的詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • EL調(diào)用Java方法_動力節(jié)點Java學(xué)院整理

    EL調(diào)用Java方法_動力節(jié)點Java學(xué)院整理

    簡單來說,我們在一個類中的某個方法,可以使用EL進行調(diào)用,這個能被EL表達式調(diào)用的方法稱之為EL函數(shù),但是這種方式必須滿足兩點要求,具體哪兩點,大家可以參考下本文
    2017-07-07
  • Java中的Semaphore信號量深入解析

    Java中的Semaphore信號量深入解析

    這篇文章主要介紹了Java中的Semaphore信號量深入解析,Semaphore是Java里面另外一個基本的并發(fā)工具包類,主要的的作用是用來保護共享資源的訪問的,也就是僅僅允許一定數(shù)量的線程訪問共享資源,需要的朋友可以參考下
    2023-11-11
  • SpringBoot多環(huán)境打包與配置文件排除實踐記錄

    SpringBoot多環(huán)境打包與配置文件排除實踐記錄

    本文介紹了SpringBoot項目多環(huán)境打包與配置文件排除實踐,包括多環(huán)境配置的實現(xiàn)方法、打包時排除配置文件的方法以及動態(tài)加載外部配置文件的最佳實踐,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • java中同類對象之間的compareTo()和compare()方法對比分析

    java中同類對象之間的compareTo()和compare()方法對比分析

    這篇文章主要介紹了java中同類對象之間的compareTo()和compare()方法對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):單鏈表與雙向鏈表

    java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):單鏈表與雙向鏈表

    這篇文章主要為大家詳細介紹了java實現(xiàn)單鏈表、雙向鏈表的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • spring的xml文件打開沒有namespace等操作選項的解決方案

    spring的xml文件打開沒有namespace等操作選項的解決方案

    這篇文章主要介紹了spring的xml文件打開沒有namespace等操作選項的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot數(shù)據(jù)庫操作圖文教程

    springboot數(shù)據(jù)庫操作圖文教程

    本文以圖文并茂的形式給大家介紹了springboot數(shù)據(jù)庫操作,感興趣的朋友一起看看吧
    2017-07-07
  • Mybatis-plus批量插入的2種方式總結(jié)

    Mybatis-plus批量插入的2種方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Mybatis-plus批量插入的2種方式,Mybatis-Plus提供了多種方式進行批量插入優(yōu)化,文中通過代碼示例將實現(xiàn)的方法介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Java?策略模式?if-else用法實例詳解

    Java?策略模式?if-else用法實例詳解

    這篇文章主要介紹了Java?策略模式?if-else用法詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • Spring手動獲取bean的四種方式

    Spring手動獲取bean的四種方式

    本文主要介紹了Spring手動獲取bean的四種方式,包括BeanFactoryPostProcessor接口,ApplicationContextAware接口,注解 @PostConstruct 初始化時獲取,啟動類ApplicationContext獲取這四種方法,感興趣的可以了解一下
    2024-01-01

最新評論

沅陵县| 泽普县| 黄梅县| 博罗县| 永州市| 仁布县| 根河市| 东至县| 麻栗坡县| 渝北区| 乌鲁木齐市| 确山县| 旅游| 舒兰市| 绍兴县| 乡宁县| 南皮县| 丰镇市| 将乐县| 洛宁县| 伊川县| 门源| 保定市| 大兴区| 噶尔县| 赣州市| 庆安县| 巴林右旗| 施甸县| 肇庆市| 平原县| 黄浦区| 天等县| 舟山市| 科技| 彩票| 南汇区| 百色市| 松阳县| 红安县| 成都市|