开发者社区 问答 正文

Java 中操作字符串都有哪些类?它们之间有什么区别?

Java 中操作字符串都有哪些类?它们之间有什么区别?

展开
收起
问问小秘 2020-01-03 13:20:30 642 分享 版权
来自: Java开发者
1 条回答
写回答
取消 提交回答
  • String StringBuffer StringBuilder

    String是不可变的对象,对每次String类型的改变都会生成一个新的对象,StringBufer和StringBuilder是可以改变对象的

    效率:操作效率StringBuilder》Stringbuffer》String

    线程安全:StringBuffer是线程安全,用于多线程,Stringbuilder是非线程安全,用于单线程

             不频繁的字符串操作使用String,反之,Stringbuffer和Stringbuilder都优于String

    线程安全是多线程编程时的计算机程序代码中的一个概念。

    在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。

    线程安全问题大多是由全局变量及静态变量引起的,局部变量逃逸也可能导致线程安全问题。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。

    2020-01-03 13:20:48
    赞同 展开评论