2

私はこれを何度も見ました:

public class MyApp extends SomeLibrary
{
  public static void main(String[] args)
  {
    MyApp app = new MyApp();
    app.run();
  }
}

それ以外の:

MyApp app = new MyApp();
app.run();

なぜそうしないのですか:

(new MyApp()).run();

a) ガベージ コレクションが存在する場合、b) 内部で他に何も実行されないことが明らかpublic static void mainであり、c)appが再び参照されないことが明らかな場合

4

3 に答える 3

4
  • 違いはありません(バイトコードは同じかもしれないと思います-編集:チェックしただけです:そうではありません)
  • 一般に、最初の形式の方が読みやすい
  • 読みやすさが影響を受けない場合、2番目は理にかなっています-典型的な例:

    new Thread(someRunnable).start();
    
于 2012-09-23T18:23:29.007 に答える
2

ええ、アプリケーションに他に何もない場合は、次のように実行できます

(new MyApp()).run();

ただし、通常、アプリケーションはもう少し複雑で、初期化を行う必要があるため、インスタンスを変数に割り当てます。

于 2012-09-23T18:22:34.347 に答える
1

読みやすさ以外は、2 つの方法に違いはありません。IDE によっては、前者を後者に置き換えることを実際に提案しています。私は実際にnew MyApp().run();自分自身を好みます。

于 2012-09-23T18:24:41.207 に答える