/*** Created with IntelliJ IDEA.* User: Administrator* Date: 14-1-16* Time: 上午10:43* 判断字符串是否为空的效率问题*/public class JudgeStringIsEmptyOrNot { public static void main(String[] args) { JudgeString1("w_basketboy", 10000); JudgeString2("w_basketboy", 10000); JudgeString3("w_basketboy", 10000); JudgeString4("w_basketboy", 10000); }
/** * 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低; * 方法二: 比较字符串长度, 效率高, 是最好的一个方法; * 方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二; * 方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多; */ public static void JudgeString1(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || "".equals(str)) {
} } } long endTime = System.currentTimeMillis(); System.out.println("function1耗时:" + (endTime – startTiem) + "ms"); }
public static void JudgeString2(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str.length() <= 0) {
} } } long endTime = System.currentTimeMillis(); System.out.println("function4耗时:" + (endTime – startTiem) + "ms"); }
public static void JudgeString3(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str.isEmpty()) {
} } } long endTime = System.currentTimeMillis(); System.out.println("function3耗时:" + (endTime – startTiem) + "ms"); }
public static void JudgeString4(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str == "") {
} } } long endTime = System.currentTimeMillis(); System.out.println("function4耗时:" + (endTime – startTiem) + "ms"); }}
所有欺骗中,自欺是最为严重的