欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

public static void main(String[] args)

1、由于在入口時,未調(diào)用任何對象,該方法只能設置為static靜態(tài)
2、JVM為Java的最底層,所以即使有返回結果,結果也無處可去,因此該方法必然是void無返回值
3、由于main方法是入口,被JVM自動調(diào)用,只有將該方法設置為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

當我們加上public類(public class)后,編譯運行通過,根據(jù)返回結果可以清楚看到程序的執(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();
  }
}

運行結果:YXYZ

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

public static void main(String[] args)

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

相關文章

  • Java如何實現(xiàn)海量數(shù)據(jù)判重

    Java如何實現(xiàn)海量數(shù)據(jù)判重

    在海量數(shù)據(jù)如何確定一個值是否存在?這是一道非常經(jīng)典的面試場景題,那怎么回答這個問題呢?下面小編就來和大家詳細的聊一聊,感興趣的可以一起學習一下
    2023-09-09
  • Java的LinkedHashSet源碼深入講解

    Java的LinkedHashSet源碼深入講解

    這篇文章主要介紹了Java的LinkedHashSet源碼深入講解,LinkedHashSet是HashSet的子類,而由于HashSet實現(xiàn)了Set接口,因此LinkedHashSet也間接實現(xiàn)了Set類,LinkedHashSet類屬于java.base模塊,java.util包下,需要的朋友可以參考下
    2023-09-09
  • 淺析SpringBoot自動裝配的實現(xiàn)

    淺析SpringBoot自動裝配的實現(xiàn)

    springboot開箱即用,其實實現(xiàn)了自動裝配,本文重點給大家介紹SpringBoot是如何做到自動裝配的,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • 詳解Java的內(nèi)存模型

    詳解Java的內(nèi)存模型

    本文更準確的說法應該是JVM的內(nèi)存模型,但是這里又牽扯了一些其他的前置知識,主要是想從Java入手,從源頭上梳理一遍整個Java底層運行的機制,中間會額外補充一些和題目無關的前置基礎,導致主講內(nèi)存模型的篇幅所占的比例就不是那么絕對。
    2021-06-06
  • javax.servlet不存在的解決辦法

    javax.servlet不存在的解決辦法

    今天在關于servlet的編譯中出現(xiàn)了一下小小的錯誤,發(fā)現(xiàn)javax.servlet不存在,本文就介紹一下解決方法,感興趣的可以了解一下
    2021-07-07
  • java異常處理機制示例(java拋出異常、捕獲、斷言)

    java異常處理機制示例(java拋出異常、捕獲、斷言)

    這篇文章主要介紹了java異常處理機制示例(java拋出異常、捕獲、斷言),需要的朋友可以參考下
    2014-05-05
  • 教你用Java實現(xiàn)RSA非對稱加密算法

    教你用Java實現(xiàn)RSA非對稱加密算法

    今天帶各位小伙伴學習怎么用Java實現(xiàn)RSA非對稱加密算法,文中有非常詳細的解釋及代碼示例,對正在學java算法的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解Java線程堆棧

    詳解Java線程堆棧

    本篇文章主要給大家講了Java線程堆棧的詳細原理以及用法,需要的朋友跟著學習下吧。
    2017-12-12
  • 新手入門了解ArrayList擴容機制

    新手入門了解ArrayList擴容機制

    這篇文章主要介紹了新手入門了解ArrayList擴容機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java多線程狀態(tài)及方法實例解析

    Java多線程狀態(tài)及方法實例解析

    這篇文章主要介紹了Java多線程狀態(tài)及方法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論