EN JP CN

ESCMP.EMPTYSTR

ESCMP.EMPTYSTR

ESCMP は、equals() を使用して文字列と空の文字列を比較しています。文字列と空の文字列の比較に equals() を呼び出す必要はありません。s.length() は 2 倍早く動作します。以下のように使用してください:s.equals("") および "".equals(s) は、(s.length() == 0) および (s != null && s.length() == 0) という式と容易に置き換えることができます。パフォーマンス測定 (Java 2 Runtime Environment、Standard Edition、build 1.4.1_02-b06 を使用して実行) の結果、"equals" のコードの実行時間が 147 単位時間に対し、"length" のコードの実行時間が 71 時間単位であったことが明らかになりました。

例 1

9      public boolean emptyCheck1(String s) {
10         if (s.equals("")) return true;
11         return false;
12     }
13     public boolean emptyCheck2(String s) {
14         if ("".equals(s)) return true;
15         return false;
16     }
17     // fixed code
18     public boolean emptyCheck3(String s) {
19         if (s.length() == 0) return true;
20         return false;
21     }

ESCMP.EMPTYSTR が 10 行目に対して報告されています。length() == 0 ESCMP.EMPTYSTR ではなく equals() を使用して文字列 's' と "" の比較が 14 行目に対して報告されています。length() == 0 ではなく、equals() を使用して文字列 "" と 's' が比較されています。