一、新建一个 Test1 类

public class Test1 {

    public static void main(String[] args) {
String a = "a";
String s = a+"b"+"c"+"d";
System.out.println(s);
} }

二、使用 javac 将 Test1.java 编译为 Test1.class

C:\User\桌面>javac D:\workspace\Test1\src\com\test\Test1.java

三、使用 javap -c 将 Test1.class 反编译

四、结论

String 在做字符串拼接的时候,实际上创建了一个 StringBuilder 对象,然后调用了该对象的 append 方法

五、现在你可能随意使用 String 对象,反正编译器会为你自动优化性能,可是在这之前,我们更深入的看看编译器为我们优化到了什么程度

下面使用两种方式生成一个 String:方法一使用多个 String 对象;方法二在代码中使用了 StringBuilder。

public class Test1 {

    public String withString(){
String result = "";
for (int i = 0; i < 3; i++) {
result += i;
}
return result;
} public String withStringBuilder(){
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 3; i++) {
sb.append(i);
}
return sb.toString();
} }

最新文章

  1. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind
  2. owin建控制台应用程序步骤
  3. Web前端优化最佳实践及工具集锦
  4. 当ListView有Header时,onItemClick里的position不正确
  5. 防抖(Debounce)与节流( throttle)区别
  6. xib托线出来的为什么是weak而不是strong
  7. org.hibernate.LazyInitializationException: could not initialize proxy - no Session
  8. SAP资产变动明细
  9. 【转】ODBC、OLE DB、 ADO的区别
  10. CEO应向软件工程师学习的7个技能
  11. Java基础——异常体系
  12. Sqli-labs less 32
  13. hdu 4403 简单搜索
  14. 【HDOJ】4691 Front compression
  15. 开源网络库的分析libev libevent nginx ....
  16. Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架
  17. VS2012配色方案
  18. Screen的简单使用
  19. javascript设计模式——组合模式
  20. BZOJ 2916: [Poi1997]Monochromatic Triangles [计数]

热门文章

  1. Bing Maps进阶系列三:使用地图图像服务(ImageryService)
  2. C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
  3. bzoj4082
  4. 【转载】基于AFNetWorking3.0的图片缓存分析
  5. Nginx网站用Let’sEncrypt证书开HTTPS
  6. java网络编程UDP
  7. 【XSY3209】RGB Sequence
  8. python - 解决 ModuleNotFoundError: No module named &#39;pip&#39;
  9. jQueryTools-Scrollable.js
  10. Educational Codeforces Round 45