String 类的终极理解

原创 2016年08月30日 17:20:35

1:原程序如图,我们可以看到s3 字符串的构建过程


2:通过采用jdk自带的javap -c  StringTest反编译


3:String 的+,+= 是Java中仅存有的两个重载过的操作符,我们发现在构建S3时候调用了

StringBuilder 对象,每增加一个字符串就调用一次append()方法一共4次,拼接完成后调用ToString方法生成最终结果。

4:现在你可能会觉得可以随意使用String对象了,反正编译器会帮你优化性能;看看下面的例子


5:通过2种不同的方式构建StringBuilder 和String 对象 ,反编译之后




6:可以发现在构建String对象的时候25-58行是一个循环体,过程中产生了大量的StringBuilder和String对象


总结:当你在编写一个较为简单的String对象时候可以时候+操作符,如果要在toString方法中循环,最好自己创建一个StringBuilder;




相关文章推荐

Java 中String类的终极总结

因为需要在这里把String类涉及的各个方面总结一下,另给出了一下SCJP题目。如有不足的地方,请在评论中指教,谢谢。 一、不变模式: 一个字符串对象创建后它的值不能改变。 String st...

RxJava+Retrofit+OkHttp深入浅出-终极封装六特殊篇(变种String替换Gson自由扩展)

Rxjava+ReTrofit+okHttp深入浅出-终极封装特殊篇(变种String替换Gson自由扩展)背景在之前的封装1-5中我们都是通过传统的GsonConverterFactory自动解析,...

String创建方式内存终极分析

string内存终极解析 猜猜下面代码的运行结果?public class TestString { public static void m1() { String a = ...

终端(terminal)控制台(console)区别终极理解

原网址:http://www.linuxdiyf.com/viewarticle.php?id=36084原标题:关于终端和控制台的一些解释今天看到有人问终端和控制台的区别,而且这个问题比较有普遍性,...

对String的深入理解

  • 2008年12月21日 23:03
  • 18KB
  • 下载

高斯混合模型的终极理解

高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM...

终端(terminal)控制台(console)区别终极理解

原网址:http://www.linuxdiyf.com/viewarticle.php?id=36084 原标题:关于终端和控制台的一些解释 今天看到有人问终端和控制台的区别,而且这个问题比...

线性变换基础(终极理解汇总)

线性变换理解
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:String 类的终极理解
举报原因:
原因补充:

(最多只允许输入30个字)