String Stringbuffer Stringbuilder


  1. 首先 String 是字符串常量 其它两个是字符串变量
  2. 其次 Stringbuilder 线程不安全 是单线程 运行效率最高 
  3. String 和 Stringbuffer 是线程安全的 所以效率没有Stringbuilder 高
  4. 最后 Stringbuilder 是单线程 运行效率最高 
    String 和 Stringbuffer 多线程 运行效率相对低
之前我对这三个的理解 很局限,
String  在java  lang包里面,被fianl 修饰, 不能被继承, 字符串底层封装了字符数组以及针对字符数组的操作算法
字符串一旦被创建,对象永远无法改变,但字符串的引用是可以改变,在java 里面 字符串在内存中 采用 Unicode 编码方式,
任何一个字符对应两个字节的定长编码;
String  在内存空间(常量池)里面所创建的对象  是被重复利用, 除非new 对象; 例如:在字符串拼接的时候,在原有的对象上进行复制,然后在继续进行拼接   特别注意的是  “1234”+“abcd”与 “1234abcd” 在编译成.class 文件的时候,把前者进行了合并,  所以完了前后的连个代码 地址一样,但是 如果 a="1234"   b="abcd"  和  c= "1234abcd"   a+b 与 c  的地址不一样。
真因为以上的原因  所以java  现在定义了  StringBuffer  类  线程安全,就是为了进行多次修改使用,(一些常用的方法可以查看API ) 最后在5.0 版本以后 有增加了  StringBuilder 线程不安全 但是运行效率高
其次 StringBuffer 和StirngBuilder 两个类的方法 基本上都相同,再补充一点  String字符串的拼接是利用StringBuilder 来实现的

以上的东西都是为我以后的方便阅读所写,若果有人发现技术行错误,请给我指出,谢谢!我的字文章没有别的意思,就是我的一个的总结!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值