String拼接字符串
来源:互联网 发布:hash 源码 编辑:程序博客网 时间:2024/04/29 10:03
方法1:builder是最后会被释放掉。
private void actionA() {StringBuilder builder = new StringBuilder("0");long start = System.currentTimeMillis();for(int i = 1; i <= 1000 * 100; i++) {builder.append(i);}long end = System.currentTimeMillis();System.out.println("actionA耗时:" + (end - start));}
方法2:+产生大量的String 临时类,增加了对垃圾回收占用CPU的时间。
private void actionB() {String str = "0";long start = System.currentTimeMillis();for(int i = 1; i <= 1000 * 100; i++) {str = str + i;}long end = System.currentTimeMillis();System.out.println("actionB耗时:" + (end - start));}
输出结果:值不是绝对的,但方法2确实比方法1快很多。
actionA耗时:13
actionB耗时:34960
还有一个StringBuffer,有个线程安全问题:多个线程修改同一个对象时可能产生的冲突情况。比如一个 StringBuilder ,可能被多个线程访问,那么如果没有 synchronized 的话,第一个线程改变了其值,之后又有第二个线程改变了它的值。当切换回第一个线程时,读到的就是第二个线程修改后的值了。如果不考虑多线程, StringBuilder 比StringBuffer要快。
String:在字符串不经常变化的场景中可以使用String类,例如常量的声明、少量的变量运算。
StringBuffer:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中。
StringBuilder:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程的环境中。
阅读全文
0 0
- String字符串拼接陷阱
- String拼接字符串
- String字符串拼接效率比较
- JAVA8 String.join 字符串拼接
- java的string字符串拼接
- String字符串的拼接问题
- String中的字符串拼接问题
- StringBuilder String string.Concat 字符串拼接速度
- appendChild、拼接string、join三种方式比较字符串拼接
- 字符串拼接时用StringBuffer代替String
- 关于String 拼接字符串的性能问题
- android 资源文件String字符串拼接
- android 资源文件String字符串拼接
- android 资源文件String字符串拼接
- String面试题--字符串的拼接
- String.format()用法大全 (字符串拼接)
- String.format参加字符串拼接大比拼
- String.format参加字符串拼接大比拼
- 易观 OLAP 大赛揭晓 PingCAP 斩获商业组桂冠
- C++ Primer Plus 课后编程练习——第五章循环和关系表达式
- Oracle 还原数据 (dmp 文件)
- python之for循环详解
- Android中的主题Theme相关
- String拼接字符串
- 利用beego开发网站(一)
- MySQL学习笔记(四):MySQL中LAST_INSERT_ID()使用时的注意事项
- Python_列表
- 如何使用mapinfo对地图分层设色并导出为图片
- 【JAVA_SE学习笔记】Object类
- SpringSecurity(六):Session(集群)管理和Logout
- HTML表单
- 清除浮动