Java でのコード最適化のヒント

WBOY
リリース: 2023-06-09 09:03:18
オリジナル
843 人が閲覧しました

人気があり広く使用されているプログラミング言語である Java のコード最適化スキルも、開発者が注目しているものの 1 つです。この記事では、プログラムのパフォーマンスを向上させるために一般的に使用される Java コード最適化テクニックをいくつか紹介します。

  1. 文字列の結合には String の代わりに StringBuilder を使用する

Java では、String は不変であるため、文字列の結合が実行されるたびに新しい String オブジェクトが作成されます。重い文字列処理を実行するときのプログラムのパフォーマンス。したがって、可変文字列クラスである StringBuilder を使用して文字列連結の String を置き換えることができ、それによってプログラムのパフォーマンスが向上します。

サンプルコードは以下のとおりです。

String str = "";
for(int i=0; i<1000; i++){
    str += i;
}
ログイン後にコピー

は次のように置き換えることができます。

StringBuilder sb = new StringBuilder();
for(int i=0; i<1000; i++){
    sb.append(i);
}
String str = sb.toString();
ログイン後にコピー
  1. コレクションクラスを使用する場合の初期容量を指定します

ArrayList の場合、HashMap などのコレクションクラスは、頻繁な展開操作をある程度回避できるよう、初期容量を指定して使用するのがベストです。特に、コレクションに格納されている要素の数が多い場合、この最適化の効果はより顕著になります。

サンプル コードは次のとおりです:

List<Integer> list = new ArrayList<>();
// 进行大量操作
list.add(1);
list.add(2);
list.add(3);
ログイン後にコピー

は次のように置き換えることができます:

List<Integer> list = new ArrayList<>(1000);
// 进行大量操作
list.add(1);
list.add(2);
list.add(3);
ログイン後にコピー
  1. try-with-resources の代わりに try-catch-finally を使用します

Java 7 では、リソースを自動的に閉じるために try-with-resources 構文が導入されました。ただし、場合によっては、try-catch-finally を使用した方が効率的です。

try-with-resources を使用すると、JVM はリソースごとに try-finally ブロックを作成します。したがって、大量のリソースを処理する必要がある場合、スタック オーバーフローが発生する可能性があります。

サンプル コードは次のとおりです:

try(InputStream in = new FileInputStream("file.txt")){
    // 处理文件流
} catch(IOException e) {
    // 异常处理
}
ログイン後にコピー

は次のように置き換えることができます:

InputStream in = null;
try{
    in = new FileInputStream("file.txt");
    // 处理文件流
} catch(IOException e) {
    // 异常处理
} finally {
    if (in != null) {
        try {
            in.close();
        } catch (IOException e) {
            // 异常处理
        }
    }
}
ログイン後にコピー
  1. ハードコードされた値の代わりに静的な最終定数を使用します

hard エンコードされた値は、可読性の低下、保守性の低下、コードの重複などの問題を引き起こす可能性があります。静的な最終定数を使用すると、これらの問題を回避し、プログラムの効率を向上させることができます。

サンプル コードは次のとおりです。

public static double calculateArea(double radius) {
    double pi = 3.14159265358979323846;
    return pi * radius * radius;
}
ログイン後にコピー

は次のように置き換えることができます。

public static final double PI = 3.14159265358979323846;
public static double calculateArea(double radius) {
    return PI * radius * radius;
}
ログイン後にコピー
  1. メンバー変数の代わりにローカル変数を使用します
# #Java では、メンバー変数に複数のメソッドでアクセスできるため、オブジェクト インスタンスのサイズとオーバーヘッドが増加します。ローカル変数を使用すると、これらの問題を回避でき、プログラムの効率も向上します。

サンプル コードは次のとおりです。

public class Test {
    private int num;

    public void setNum(int num) {
        this.num = num;
    }

    public void doSomething() {
        for (int i = 0; i < 1000; i++) {
            // 使用 num
        }
    }
}
ログイン後にコピー

は次のように置き換えることができます。

public class Test {
    public void setNum(int num) {
        // do something
    }

    public void doSomething() {
        int num = 0;
        for (int i = 0; i < 1000; i++) {
            // 使用 num
        }
    }
}
ログイン後にコピー
上記は、一般的に使用される Java コード最適化手法の一部です。もちろん、コードの最適化は静的なものではなく、プログラムのパフォーマンスを最大化するには、特定の状況に応じて最適化する必要があります。

以上がJava でのコード最適化のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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