温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行JDK1.5下强大的String性能浅析

发布时间:2021-12-18 19:30:20 来源:亿速云 阅读:308 作者:柒染 栏目:编程语言

本篇文章为大家展示了如何进行JDK1.5下强大的String性能浅析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

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

String a = "mx";    String b = "java";     String c = a + b;     System.out.println(c);

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

String s = "mx";     String s1 = "java";      String s2 = s + s1;     System.out.println(s2);


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

String s = "mx";     String s1 = "java";     String s2 = (new StringBuilder()).append(s).append(s1).toString();     System.out.println(s2);

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

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

String a = "ab";     String b = "a";      String c = "b";     System.out.println(a == (b + c));

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

上述内容就是如何进行JDK1.5下强大的String性能浅析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI