Javaのmainメソッドは静的でなければならないのはなぜ

Javaのmainメソッドは静的でなければならないのはなぜ

これは私が最近のプログラミングの問題について考えるもの、ここにまとめるために、いくつかの情報を確認しています。

出典:https://www.cnblogs.com/numen-fan/p/7163745.html

  1. 時間Javaプログラムの実行には、Javaプログラムを実行しているの観点から、JVMがメインの方法で実行実行していたのpublic static無効メイン(文字列[] args)のクラスファイルに対応するクラスに行くことは、特定のスレッドですメインが行われ、プログラムは、メインスレッドまたは非デーモンスレッドが終了するの最後まで実行されます。スレッドメインでExcpetion::次のような「メインスレッドでの例外」を参照してくださいときに、Java.lang.NullPointedExceptionを、それがメインスレッドからの例外を意味します。あなたが主な方法を見つけることができない場合、それはNoSuchMethodErrorをスローします:主な例外と実行を停止します。
  2. しかし、プログラムの実行角がちょうどmainメソッドが静的であるため、JVMは、コンストラクタが重いことができるメインクラスのインスタンスを作成するためにそれ以外の原因、このメソッドはメインメソッドを含む任意のインスタンスを作成する必要はありません呼び出して、より深いレベルを示すことを行きます負荷は、JVMは、呼び出すためにどの方法を決定することができないであろう。

主な方法があること、公開されているので、我々はあなたが公共にしたいので、クラスメソッドとして呼び出すことにしたいです。mainメソッドの戻り値は意味がないので、それは無効に設定されています。

mainメソッドが静的であるため、それはそう、それは直接呼び出すすべてのメソッドは静的である必要があり、これらの方法で使用される対応する変数は静的変数でなければならないだろう、です。「ないグローバル静的変数の初期化は、最初は0、静的変数の関数の場合、クラスの静的メンバ変数は、初期化されなければならないだろう、最初は機能最初の実行では、一度だけ、最初の」それが変数であることを、私たちが必要となるので、初期化。

あなたはどのように行うために、非静的メソッドまたは非静的変数を使用している場合は?引き出された主な方法は、うまく起動クラスを作成します

おすすめ

転載: www.cnblogs.com/jiading/p/11917019.html