美文网首页我爱编程
Java菜笔记:String、StringBuilder、Str

Java菜笔记:String、StringBuilder、Str

作者: 挺婷Tina | 来源:发表于2018-06-11 21:52 被阅读0次

    String 是Java里面最常用的字符串类型,是不可变的,拼接裁剪都会产生新的String对象。而StringBuilder和StringBuffer常用于要大量拼接字符串的情况;而StringBuilder是非线程安全的,StringBuffer是线程安全的,两者的区别好像只限于StringBuffer在设置的方法上添加了synchronized字符;在拼接不同String对象的时候,就会产生大量中间对象的问题;

    扩展1:如何设计一个线程安全类?

    Ans:参考StringBuffer类,直接在修改的方法上都加了synchronized

    设计的时候优先考虑可靠性、可读性

    扩展2:字符串的缓存

    JDK6提供了一个intern,显示地排重返回字符串缓存,被缓存的字符串将存在PermGen里,基本也就只能等着FullGC来回收;所以如果使用不当,很容易引发OOM

    扩展3:字符串的编码

    一般我们用String.getBytes时,都要指定读取的编码格式,不然就会依赖于操作系统的编码格式来返回东西了。一台机器上可能默认返回的事Unicode,到另外一台机器可能就不是了。

    相关文章

      网友评论

        本文标题:Java菜笔记:String、StringBuilder、Str

        本文链接:https://www.haomeiwen.com/subject/xmckeftx.html