[解決済み] なぜJavaのmainメソッドは静的なのですか?
2022-03-19 08:59:41
質問
のメソッドシグネチャは、Javaの
main
というメソッドがあります。
public static void main(String[] args) {
...
}
このメソッドが静的でなければならない理由はありますか?
どのように解決するのですか?
そうしないと、どのコンストラクタを呼び出すべきかという曖昧さが生じるため、このメソッドは静的です。 特に、以下のようなクラスであればなおさらです。
public class JavaClass{
protected JavaClass(int x){}
public void main(String[] args){
}
}
JVMは
new JavaClass(int)
? には何を渡すべきでしょうか?
x
?
そうでない場合、JVMはインスタンス化する必要があります
JavaClass
コンストラクタのメソッドを実行せずに? 初期化されていないインスタンスがある場合、呼び出される可能性のあるすべてのメソッドでそれをチェックしなければならないからです。
エッジケースやあいまいな点が多すぎて、エントリポイントが呼ばれる前にJVMがクラスをインスタンス化しなければならないのは理に適っていないのです。 そのため
main
は静的です。
なぜ
main
が常にマークされています。
public
とはいえ
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み] Javaにおける静的クラス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
jd-gui Java Exceptionが発生しました。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
org.glassfish.jersey.servlet.ServletContainer
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について