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

コピー
      public boolean emptyCheck1(String s) {
         if (s.equals("")) return true;
         return false;
     }
     public boolean emptyCheck2(String s) {
         if ("".equals(s)) return true;
         return false;
     }
     // fixed code
     public boolean emptyCheck3(String s) {
         if (s.length() == 0) return true;
         return false;
     }

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