-3

レビューするコードをメールで受け取りました。このコードは Web サービスで使用され、Java.

main() メソッドを所有するクラスが Runnable を実装し、このメール メソッドで実行されるスレッドを初期化するために使用されていることを発見したとき、私は驚きました。

これは、呼び出されない main() メソッドで多くのオブジェクトを初期化することを意味します。もちろん許可されていますが、ビジネス ロジックとメイン ルーチンを混在させることは非常に非正統的です。これは私に質問をもたらしました: main() メソッドを含む多くのオブジェクトを作成するとき. メモリ リソースを浪費していませんか? (これがどれほど醜いかは別として)。オブジェクトが使用されないメソッドでインスタンス化されている場合、メモリの浪費について暗黙のうちに質問しています。他の場所で満足のいく答えを見つけることができませんでした。

4

1 に答える 1

2

あなたが Java 教会の教皇でない限り、それが「非常に非正統的」であるとどのように判断したのかはわかりません。しかし、それは間違いなくリソースの無駄ではありません。

ご想像のとおり、メソッドのコードはインスタンスごとに複製されません。これは一度だけ存在し、インスタンスはそれを共有します。呼び出されることのない単一のメソッドのリソースを確保できない場合は、1 つのタイトな船を実行していることになります。

つまり、それは最も美しい解決策ではないかもしれませんが、あなたが考えているほど大きな問題ではありません。

于 2013-11-12T11:07:06.353 に答える