java中string stringbuffer和stringBuilder区别

来源:互联网 发布:小满科技 数据怎么样 编辑:程序博客网 时间:2024/04/30 19:00

一直想做这3个之间的区别,当我们在开发过程中一般好少去考虑这些

1.在执行效率方面比较:stringbuilder > stringbuffer

2.stringbuffer 与 stringBuilder,它们都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上进行操作的,不像string一样不断的创建对象来操作,所以速度快了

举个例子吧:String s = new String(“woshizifuchuan”);当你要改变s的时候,比如改为s =s+”dsdsdsd”;系统会重新创建一个字符串变量它的值为”woshizifuchuandsdsdsd”,然后把该字符串赋值给s.当你这样的改变s的行为在一个循环里面,那么将会创建大量的中间变量,影响程序的运行效率:如:for(int i=0;i<100000;i++){s=”a”;}

3.stringBuilder:线程非安全的

   stringBuffer:线程安全的

  当我们在字符串被多线程使用时,jvm不能保证stringBuilder线程是安全的,虽然它的速率快,但是可以保证stringbuffer是可以正确操作的,当然大多数情况下就是我们是在单线程下进行操作的,所以大多数情况下建议是用stringbuilder 而不用 stringbuffer的,就是速度的原因

 

 对3个使用总结: 1.如果要操作少量的数量:=string

                                 2.单线程操作字符串 下操作大量数据 =stringBuilder

                                 3.多线程操作字符串 下操作大量数据 =stringBuffer

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝拉肚子怎么办啊 小孩发烧怎么办39度要吃消炎药吗 孩子不爱吃水果蔬菜怎么办 一岁宝宝不吃水果怎么办 一岁宝宝不爱吃水果怎么办 1岁多宝宝不吃水果怎么办 中学生不爱与家长交流怎么办 孩子一直37度多怎么办 小孩39度3算高烧怎么办 7岁发烧怎么办如何退烧 7岁反复发烧7天怎么办 一岁发烧39.8度怎么办 反复发烧39度4天怎么办 大人发烧到39度怎么办 小孩高烧39度多怎么办 孩子嗓子发炎发烧怎么办吃什么药 猫咪吃了点桃子怎么办 猫吃了牛油果怎么办 苹果手机死机开不了机怎么办 新生儿出生第一天没奶水怎么办 第一天断奶奶水一直流出怎么办 3岁宝宝不长个子怎么办 5个月宝宝不长个怎么办 孩子比同龄人矮很多怎么办 孕妇做春梦宫缩怎么办 减肥掉头发很厉害怎么办 孕妇吃了金枪鱼罐头怎么办 怀孕吃了烂水果怎么办 快递水果压坏了怎么办 谈对象被骗了钱怎么办 如果遇到半夜坏人敲门怎么办 小孩晚上不进房间睡觉怎么办 房子照不到阳光潮湿怎么办 4个月婴儿不拉屎怎么办 小孩六个月奶不够吃怎么办 到晚上就没奶水怎么办 20多天奶水不够怎么办 四个月奶不够吃怎么办 7个月宝宝不肯吃东西怎么办 6个月宝宝不肯吃东西怎么办 十一个月宝宝不肯吃东西怎么办