首页 > 其他分享 >通过class字节码了解StringBuilder拼接字符串效率高的原因

通过class字节码了解StringBuilder拼接字符串效率高的原因

时间:2023-09-04 15:04:10浏览次数:39  
标签:拼法 Java String int StringBuilder class 字节


挺久没具体去看了,随手记一下吧。

String str = "";
for (int i =0 ; i <10;i ++ ){
 str += i;
}

这样的拼法,实际上从分析class的字节码来看,是在循环里面new StringBuffer对象,相当的耗。


通过这样的分析,给新人解释,是最有效的了。还能提升一些了解java底层知识的兴趣。


——《Java编程思想》第四版P284-286 对这个问题进行了说明,可参考。

标签:拼法,Java,String,int,StringBuilder,class,字节
From: https://blog.51cto.com/u_16245757/7350843

相关文章

  • java ClassLoader笔记(一)
    作者:fbysss关键字:ClassLoader一、SunJDKClassloader体系1.层次关系Bootstrap:加载rt.jar<-Extension:加载 jre/ext/*.jar <-System:加载CLASSPATH中的jar<-UserDefined加载用户自定义包类2.特殊点  BootstrapClassLoader为C++所写,ExtensionClassLoader的parent为null,其中......
  • kubernetes存储方案(二):StorageClass的使用
    StorageClass介绍创建StorageClass#catstorageclass-glusterfs.yamlapiVersion:v1kind:Secretmetadata:name:heketi-secretnamespace:defaultdata:key:YWRtaW5rZXk=type:kubernetes.io/glusterfs---apiVersion:storage.k8s.io/v1beta1kind:Storag......
  • 华为云classroom赋能 | Toolkit系列插件DevSecOps助力开发者提速
    一前言DevOps的概念想必大家都不陌生,它是一组过程、方法与系统的统称,通过它可以对交付速率、协作效率、部署频率速率、质量、安全和可靠性等进行提升改善。相比传统的软件开发模式,它是一种工作方式和文化的转变,把开发者和IT运营人员衔接起来,紧紧围绕产品生命周期配合,优化改进交付效......
  • 华为云Classroom赋能 | Devstar使应用开发无需从零开始
    华为云DevStar为开发者提供业界主流框架代码初始化能力,通过GUI、API、CLI等多种方式,将按模板生成框架代码的能力推送至用户桌面。同时基于华为云服务资源、成熟的DevOps开发工具链和面向多场景的众多开发模板,提供一站式创建代码仓、自动生成框架代码、创建编译构建、测试、部署等流......
  • 华为云classroom赋能|tookIT助力开发者上云
    对于资深程序员而言,IDE是必不可少的,它好比是剑客手中的宝剑,IDE帮助程序员更快更丝滑的去编程,同时插件就是这把剑上的各种Buff,为宝剑赋能,提供更好的升级打怪体验。什么是HuaweiCloudToolkitHuaweiCloudToolkit中文名是华为云开发者插件,是基于华为云现有能力的一系列插件集合,简单......
  • response中的字节流使用的案例
    2023-09-03导入字节工具包,可以用于复制输入流与输出流<dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version></dependency>案例packagecom.hh.response;......
  • c# socket tcp 通信 结构体 字节流 大端序列 小端序列
    SeerAGV_2/SeerMessage.csusingSystem.Reflection;usingSystem.Runtime.InteropServices;namespaceSeerAGV{publicstructSeerMessageHead{publicbytesync;publicbyteversion;publicushortnumber;publicuintl......
  • 字节青训营 x ShowMeBug:项目实战,弥补学用鸿沟
    近期,ShowMeBug与字节青训营联合举办针对技术人群的培训实践活动,该活动目前正如火如荼地进行中,并即将迎来尾声。  这是一次理念相契的合作。字节青训营是稀土掘金社区发起的技术培训和人才选拔项目,面向在校大学生,旨在培养优秀且具有职业竞争力的开发工程师。在传统的教育视......
  • print ("标签为" + str(train_set_y[:, index]) + ", 这是一个'" + classes[np.squeez
    这行代码使用 print 函数来输出一条信息。信息的内容是由多个字符串拼接而成的,其中包括 train_set_y 数组中指定索引处的值和 classes 数组中指定索引处的值。首先,"标签为" 是一个字符串字面量。接下来,str(train_set_y[:,index]) 表示获取 train_set_y 数组中第二维索......
  • .super.getClass()方法调用?
    下面程序的输出结果是多少?importjava.util.Date;publicclassTestextendsDate{publicstaticvoidmain(String[]args){newTest().test();}publicvoidtest(){System.out.println(super.getClass().getName());}}答:结果是Test。原因:在test方法中,直接调用getC......