千家信息网

String,StringBuffer,StringBuilder区别是什么

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容主要讲解"String,StringBuffer,StringBuilder区别是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"String,
千家信息网最后更新 2025年02月03日String,StringBuffer,StringBuilder区别是什么

本篇内容主要讲解"String,StringBuffer,StringBuilder区别是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"String,StringBuffer,StringBuilder区别是什么"吧!

运行速度

从快到慢顺序:

StringBuilder > StringBuffer > String

String最慢的原因;

String为字符串常量,而StringBuffer和StringBuilder均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

例:1


1 String str="abc";
2 System.out.println(str);
3 str=str+"de";
4 System.out.println(str);


如果运行这段代码会发现先输出"abc",然后又输出"abcde",好像是str这个对象被更改了,其实,这只是一种假象罢了,JVM对于这几行代码是这样处理的,首先创建一个String对象str,并把"abc"赋值给str,然后在第三行中,其实JVM又创建了一个新的对象也名为str,然后再把原来的str的值和"de"加起来再赋值给新的str,而原来的str就会被JVM的垃圾回收机制(GC)给回收掉了,所以,str实际上并没有被更改,也就是前面说的String对象一旦创建之后就不可更改了。所以,Java中对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。

而StringBuffer和StringBuilder的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行创建和回收的操作,所以速度要比String快很多。

例:2

1 String str="abc"+"de";
2 StringBuilder stringBuilder=new StringBuilder().append("abc").append("de");
3 System.out.println(str);
4 System.out.println(stringBuilder.toString());

这样输出结果也是"abcde"和"abcde",但是String的速度却比StringBuilder的反应速度要快很多,这是因为第1行中的操作和String str="abcde"是完全一样的,所以会很快,而如果写成下面这种形式:

1 String str1="abc";
2 String str2="de";
3 String str=str1+str2;

那么JVM就会像上面说的那样,不断的创建、回收对象来进行这个操作了。速度就会很慢。

线程安全

StringBuffer是线程安全的

StringBuilder是线程不安全的


  如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。

到此,相信大家对"String,StringBuffer,StringBuilder区别是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

对象 线程 速度 安全 变量 字符 字符串 实际 方法 输出 不断 代码 关键 关键字 内容 实际上 保证 学习 运行 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安阳软件开发网上价格 和平世界是哪个游戏的服务器 计算机网络安全顺口溜 河北量化积分管理软件开发软件 信息安全网络安全是什么意思 iq数据库查询所有的表 软件开发合同的知识产权归属 网络安全法培训试题及答案 云电脑是云服务器还是云主机 网络安全工程总结 小服务器商可以备案接入吗 数据库page越大越好 网络安全记心中的手抄报 坝上天气预报软件开发 如何构建电脑网络安全 网络安全的五个基本属性 微信蜗牛数据库 临沂鼎天网络技术服务有限公司 泰坦陨落哪个服务器不卡 网络安全保密建设 网络安全知识考试答题 中宁县数据防泄密软件开发公司 电信接哪个服务器好 网络安全保密工作笔记 天津欣悦互联网科技有限公司 安全审计服务器监测项目 云服务器手机淘宝 堡垒机访问多个数据库服务器 机房网络安全检查存在问题 广东网络技术服务案例
0