ホームページ > Java > &#&ベース > Java プログラムのパフォーマンスを向上させる方法は何ですか?

Java プログラムのパフォーマンスを向上させる方法は何ですか?

王林
リリース: 2019-11-19 13:42:10
オリジナル
2808 人が閲覧しました

Java プログラムのパフォーマンスを向上させる方法は何ですか?

1. クラスの Final 修飾子を指定してください。final 修飾子を持つクラスは派生できません。

Java コア API には、final 修飾子のアプリケーションが多数あります。例: java.lang.String など。 String クラスに Final を指定すると、length() メソッドをオーバーライドできなくなります。さらに、クラスが Final として指定されている場合、そのクラスのすべてのメソッドが Final になります。 Java コンパイラは、すべての最終メソッドをインライン化する機会を探します。

2. オブジェクトの再利用を試みる

特に String オブジェクトを使用する場合、文字列接続が発生する場合は代わりに StringBuffer を使用する必要があります。システムはオブジェクトの生成に時間を費やすだけでなく、将来的にはこれらのオブジェクトのガベージ コレクションと処理にも時間を費やす必要があるため、オブジェクトの生成が多すぎるとプログラムのパフォーマンスに大きな影響を与えます。

3. ローカル変数を使ってみる

メソッド呼び出し時に渡されるパラメータや呼び出し中に作成される一時変数はスタック(Stack)に保存されますその他の変数(静的変数など)インスタンス変数などはすべてヒープ内に作成されるため、処理速度が遅くなります。さらに、特定のコンパイラ/JVM によっては、ローカル変数がさらに最適化される場合があります。

4. 変数を繰り返し初期化しないでください

デフォルトでは、クラスのコンストラクターを呼び出すときに、Java は変数を特定の値に初期化します。すべてのオブジェクトは null の整数変数 (バイト、 short、int、long) は 0 に設定され、float および double 変数は 0.0 に設定され、論理値は false に設定されます。これは、クラスが別のクラスから派生する場合に特に注意する必要があります。これは、 new キーワードを使用してオブジェクトが作成されると、コンストラクター チェーン内のすべてのコンストラクターが自動的に呼び出されるからです。

5. JAVA ORACLE アプリケーション システムの開発では、ORACLE パーサーの解析負担を軽減するために、Java に埋め込まれた SQL ステートメントはできる限り大文字にする必要があります。

6. Java プログラミング中は、データベース接続と I/O ストリーム操作を実行するとき、使用後はリソースを解放する直前であっても注意してください。これらの大きなオブジェクトを操作すると、システムに多大なオーバーヘッドが発生するためです。

7. JVM は独自の GC 機構を備えているため、プログラム開発者があまり考慮する必要がなく、開発者の負担はある程度軽減されますが、隠れた危険性も見逃してしまいます。原因 大量のシステム メモリを消費し、深刻な場合にはメモリ リークを引き起こす可能性があるため、期限切れのオブジェクトをタイムリーにリサイクルすることは非常に重要です。

JVM がガベージ コレクションをリサイクルするための条件は、オブジェクトが参照されなくなったことです。ただし、JVM の GC はあまりスマートではないため、オブジェクトがガベージ コレクションの条件を満たしていても、すぐにはリサイクルされない可能性があります。 。したがって、オブジェクトの使用後は手動で null に設定することをお勧めします。

8. 同期メカニズムを使用する場合は、コード ブロック同期ではなくメソッド同期を使用するようにしてください。

推奨チュートリアル: java クイック スタート

以上がJava プログラムのパフォーマンスを向上させる方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート