Java-29为什么不建议在for循环中用‘+’进行字符串拼接?
2021/11/14 14:40:09
本文主要是介绍Java-29为什么不建议在for循环中用‘+’进行字符串拼接?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
String类是不可变的,在for循环中每次用’+'进行 字符串拼接都会new一个新的对象,而且会耗费大量时间与内存
String str=""; for(int i=0;i<10;i++){ str+="a"; } str=str+"a"+"b";
反编译后的代码:
String str = ""; for(int i = 0; i < 10; i++) str = (new StringBuilder()).append(str).append("a").toString(); str = (new StringBuilder()).append(str).append("a").append("b").toString();
我们可以看到,反编译后的代码,在for循环中,每次都是new了一个StringBuilder,然后再把String转成StringBuilder,再进行append。
而频繁的新建对象当然要耗费很多时间了,不仅仅会耗费时间,频繁的创建对象,还会造成内存资源的浪费。
这篇关于Java-29为什么不建议在for循环中用‘+’进行字符串拼接?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略