JDK1.5下强大的String性能浅析
创始人
2024-04-13 03:50:28
0

JDK1.5下的String强大我们首先来看看之前版本的String的特征:

JDK1.5下的String强大是说String在JDK1.5下变得更加实用,Java中的String是个特殊的类型,它即不是基本类型,也不是真正意义上的变量,而是个固定类型,即final型。所以在写SQL语句或繁琐的字符串表达式的时候,为了提高效率,我们一般使用StringBuffer来代替String。原因是字符串A和字符串B运算后,会生成新的对象C。如下:

  1. String a = "mx";   
  2.  
  3. String b = "java";    
  4.  
  5. String c = a + b;    
  6.  
  7. System.out.println(c);   

上面的代码一共有三个String类型的对象,即a、b和a + b。之前我们也说过,因为String类型是固定值,所以运算后java编译器会重新为其分配一块内存用于存放结果。不过,这是JDK1.5以前对String类型运算的处理方式了。1.5以后对String运算进行了优化,以上面的代码为例,使用JDK1.4.2编译后的程序如下:

  1. String s = "mx";    
  2.  
  3. String s1 = "java";   
  4.    
  5. String s2 = s + s1;    
  6.  
  7. System.out.println(s2);  


可以看到,编译后的程序中,s2的计算仍然使用了s + s1的方式,换句话说还是生成了第三个字符串对象。那么JDK1.5编译后的程序又是怎样的呢?

  1. String s = "mx";    
  2.  
  3. String s1 = "java";    
  4.  
  5. String s2 = (new StringBuilder()).append(s).append(s1).toString();    
  6.  
  7. System.out.println(s2);   

可以看到,经JDK1.5编译后的代码使用了StringBuilder来进行字符串的运算,如果象上面代码那样仅仅一个运算,那么看不出什么效果(因为在运算时,新创建了一个StringBuilder的对象),若存在大量运算时,效果就非常明显了。因此,在使用JDK1.5以后的版本编程时,字符串加运算就不必在意了。

在网上看到有些网友在测试JDK1.5的String时,用了下面的方法:

  1. String a = "ab";    
  2.  
  3. String b = "a";   
  4.    
  5. String c = "b";    
  6.  
  7. System.out.println(a == (b + c));   

返回true,就认为是JDK1.5对String的优化。其实这是不对的,即使在JDK1.5以前的版本下执行上面这段代码,返回值依然是true。这是因为java有String池的概念。具体请参看《java中的String池》。

JDK1.5下的String性能其实就是强化了面向对象的特点,那么通过本文对于JDK1.5下的String的介绍,你是不是迫不及待要尝试下呢?

【编辑推荐】

  1. JDK源码Java.lang.Boolean的浅析
  2. Linux安装JDK与VI编辑器操作浅析
  3. JDK源码分析之Set类详解
  4. JDK 6.0中web service的使用浅析
  5. Fedora 8下JDK 6.0的安装配置问题

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...