前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典面试题-Java中,String和StringBuffer的区别?

经典面试题-Java中,String和StringBuffer的区别?

作者头像
cwl_java
发布2019-11-18 13:07:08
1.4K0
发布2019-11-18 13:07:08
举报
文章被收录于专栏:cwl_Javacwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/103099469

  • 1, String : 字符串常量,字符串长度不可变!!!
  • 2, StringBuffer : 字符串变量(Synchronized,即线程安全),如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString();StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。append方法始终将这些字符添加到缓冲区的末端;而insert方法则在指定的点添加字符。
  • 3, StringBuilder 字符串变量(非线程安全),这是在JDK5.0新增加的!!!,该对象是一个线程不安全的字符串容器,在单线程操作的情况下此对象可以用于取代StringBuffer!!!
  • 4,(String 和 StringBuffer )两者者之间的区别 : 这两者之间的区别主要区别在性能上,String,每次对存放进String当中的字符串进行更改的时候,都会生成一个新的String对象,然后指针指向该对象(虽然Java不承认自己有指针这回事),而一旦当产生的没有引用指向对象过多的时候 ,这个时候GC就会出动,对其进行清理,这个时候,性能就会有所降低!!!而使用 StringBuffer的时候,每次都会对该对象本身进行操作,而不是去创建一个新的对象,所以在多数情况下还是推荐使用该对象!!!

但是某些特殊的情况下,使用String 并不会比StringBuffer慢!!!

例如 : String str = "String1" + "String2";&& StringBuffer sb = 
new  StringBuffer(); sb.append("String1").append("String2");
在这里的String str = "String1" + "String2"实际上被翻译成了 str = "String1String2";
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档