首页 > 其他 > 详细

String、StringBuffer、StringBuilder 啥 啥 啥

时间:2021-06-09 09:28:20      阅读:18      评论:0      收藏:0      [点我收藏+]

JDK提供了三个常用的字符串类,初来乍到一脸懵逼应该怎么使用呢?

三个类均是final修饰不可继承扩展;

String类实例化对象后,每次对对象的操作都会产生一个新对象,占用内存空间。

public class MyTest {
    public static void main(String[] args) {
        String s1 = "Talk is cheap,";
        System.out.println(s1.hashCode()); // 输出hashcode 1174080159
        s1 = s1 + "Show me the bug";
        System.out.println(s1.hashCode()); // 输出hashcode 502572065
    }
}

StringBuffer和StringBuilder都是在源对象上操作,但不同的是StringBuffer是线程安全的,StringBuffer类源码中每个方法都是同步方法加了synchronized关键字;而StringBuilder类的方法没有加synchronized关键字所以多线程环境下会有线程安全问题。

所以根据场景选择

字符串不经常修改时可以使用String;经长需要修改时考虑效率则优先使用StringBuilder;考虑多线程环境下保证线程安全使用StringBuffer。

String、StringBuffer、StringBuilder 啥 啥 啥

原文:https://www.cnblogs.com/heyuhao/p/14865146.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!