Java中判断String不为空的问题性能比较

摘要:
功能1:大多数人使用的方法,直观、方便,但效率低。函数2:比较字符串长度,这是我知道的最好的方法。函数3:JavaSE 6.0提供的方法与方法2几乎相同。但是,出于兼容性原因,不建议在机器上使用以下三种方法:(机器性能不同,仅供参考)函数1使用时间:141ms函数2使用时间:46ms函数

 function 1: 最多人使用的一个方法, 直观, 方便, 但效率很低.
 function 2: 比较字符串长度, 效率高, 是我知道的最好一个方法.
 function 3: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 不推荐使用

   以下是三种方法在机器上的运行结果: (机器性能不一, 仅供参考)
 function 1 use time: 141ms
 function 2 use time: 46ms
 function 3 use time: 47ms

三种方法的代码如下:

  方法一:

  

Java代码  收藏代码
  1. public void function1(String s,int n) {  
  2.   long startTime = System.currentTimeMillis();  
  3.    
  4.   for(long i = 0; i<n; i++) {  
  5.    if(s == null || s.equals(""));  
  6.   }  
  7.   long endTime = System.currentTimeMillis();  
  8.    
  9.   System.out.println("function 1 use time: "+ (endTime - startTime) +"ms");  
  10.  }  

 方法二:

  

Java代码  收藏代码
  1. public void function2(String str,int n) {  
  2.   long startTime = System.currentTimeMillis();  
  3.    
  4.   for(long i = 0; i< n; i++) {  
  5.    if(s == null || s.length() <= 0);  
  6.   }  
  7.   long endTime = System.currentTimeMillis();  
  8.    
  9.   System.out.println("function 2 use time: "+ (endTime - startTime) +"ms");  
  10.  }  

方法三:

  

Java代码  收藏代码
  1. public void function3(String str , int n) {  
  2.   long startTime = System.currentTimeMillis();  
  3.    
  4.   for(long i = 0; i <n; i++) {  
  5.       if(s == null || s.isEmpty());  
  6.   }  
  7.   long endTime = System.currentTimeMillis();  
  8.    
  9.   System.out.println("function 3 use time: "+ (endTime - startTime) +"ms");  
  10.    
  11. }  

免责声明:文章转载自《Java中判断String不为空的问题性能比较》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇xcode真机调试Xamarin.Android打包设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JDBC之查询

案例1:查询所有用户的信息,封装到一个List里面 1 String url="jdbc:mysql://localhost:3306/nz201"; 2 String user="root"; 3 String password="root"; 4 5 Connection...

关于toString的自动调用

1 class a{ 2 3 } 4 5 class b extends a{ 6 7 String rr = "zzz"; 8 9 public String toString(){ 10 11 return "aa"; 12 13 } 14 15 }...

黑马程序员----java基础--String字符串

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、String类概述 java中用String类进行描述对字符串进行了对象的封装。这样的好处是可以对字符串这种常见数据进行方便的操作。对象封装后,可以定义N多属性和行为。 String类是final的,也就是说它没有子类。 二、String字符串的特点...

.Net Task&amp;lt;T&amp;gt;的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)

出现的环境.Net4.0 + WebApi1(4.0.30506.0) +Microsoft.Bcl.Async.1.0.168 自己死活看不出原因, 分享出来给大家看看,希望有人能找到问题的关键 出现错误的是下面这两个模块 下面的CorsMessageHandler,抄的http://www.cnblogs.com/artech/p/cors-4-asp...

delphi md5 加密

MD5加密 function ToMD5(text:String):String; var MD5: TIdHashMessageDigest5; begin MD5 := TIdHashMessageDigest5.Create; result:= MD5.HashStringAsHex(text); end;...

深入解析synchronized

深入解析synchronized 1 常见的几个并发问题 1.可见性问题 案例演示:一个线程根据boolean类型的标记flag, while循环,另一个线程改变这个flag变量的值,另一个线程并不会停止循环。 /** * @author WGR * @create 2020/12/22 -- 20:18 */ public class Test01...