字符串拼接原理 javac 和 javap
2024-08-31 01:57:17
一、新建一个 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();
} }
最新文章
- 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind
- owin建控制台应用程序步骤
- Web前端优化最佳实践及工具集锦
- 当ListView有Header时,onItemClick里的position不正确
- 防抖(Debounce)与节流( throttle)区别
- xib托线出来的为什么是weak而不是strong
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- SAP资产变动明细
- 【转】ODBC、OLE DB、 ADO的区别
- CEO应向软件工程师学习的7个技能
- Java基础——异常体系
- Sqli-labs less 32
- hdu 4403 简单搜索
- 【HDOJ】4691 Front compression
- 开源网络库的分析libev libevent nginx ....
- Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架
- VS2012配色方案
- Screen的简单使用
- javascript设计模式——组合模式
- BZOJ 2916: [Poi1997]Monochromatic Triangles [计数]
热门文章
- Bing Maps进阶系列三:使用地图图像服务(ImageryService)
- C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- bzoj4082
- 【转载】基于AFNetWorking3.0的图片缓存分析
- Nginx网站用Let’sEncrypt证书开HTTPS
- java网络编程UDP
- 【XSY3209】RGB Sequence
- python - 解决 ModuleNotFoundError: No module named &#39;pip&#39;
- jQueryTools-Scrollable.js
- Educational Codeforces Round 45