Javaファイルの実行順序、mainプログラムの入り口の理解を話します。


JVMでJava拡張子のファイルをコンパイルする時、JVMはまず入り口を探します。

public static void main(String[] args)
1、入り口ではオブジェクトを呼び出していませんので、この方法はstatic静的にしか設定できません。
2、JVMはJavaの最下層なので、結果があっても行くところがないので、この方法は必ずvoidの戻り値がないです。
3、main方法は入り口なので、JVMに自動的に呼び出されます。この方法をpublicの公有レベルに設定してこそ、JVMに見えます。
ということで、エントランスメールの方法は

public static void main(String[] args)
私達がメーンメソッドを書いていない時、システムは自動的に私達のために無参mianの主な方法を追加します。この方法の添加位置はpublic類の中で最初の行です。(前にも述べましたが、publicレベルに追加してこそJVMが見えます。自動的に呼び出すことができます。)
注:Javaファイルにいずれかの公共類が含まれていない場合は、このファイルは依然としてコンパイルによって実行できますが、アクティブに実行しています。public classが見つからないため、自動的にmainメソッドを追加できません。JVMはプログラムの入り口が見つけられません。実行エラー、つまり、コンパイルは実行エラーを通じて、public classが足りないファイルは他のjavaファイルに呼び出されるのを待つ必要があります。入り口としては使えません。

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();
  // }
//}
エラー:
エラー:見つけられないか、マスタークラスj 2 se.Zをロードできません。
理由:java.lag.lassNotFoundException:j 2 se.Z
私たちはpublicクラスを追加した後、コンパイル運転を通して、戻りの結果によってプログラムの実行順序が分かります。コードは下記の通りです。

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
 この運行結果から、JVMコンパイルの順序はJVMがpublic classの中mainに直進し、コンパイル実行を開始したことが分かります。

public static void main(String[] args)
以上は小编が绍介したJavaファイルの実行顺序、mainプログラムの入り口の详しい解统です。皆さんに助けてほしいです。ここでも私たちのサイトを応援してくれてありがとうございます。