笔试的时候考了个这个题,没答上来,哈哈,大神们说说吧

解决方案 »

  1.   

    现在推荐用StringBuilder,这个是线程不同步的。我知道的区别应该在这里
      

  2.   

    StringBuilder是jdk1.5之后出现的。因为是线程不同步的,所以效率会比StringBuffer高
      

  3.   

    StringBuilder和StringBuffer的区别只在于前者线程不安全,后者实现了所有方法的线程同步
    StringBuffer由于实现了线程同步,所以在执行的时候会有加锁的资源消耗,效率较低
    在不受到线程共享变量的影响情况下,都推荐使用StringBuilder
      

  4.   

    23. StringBuffer和StringBuilder的区别在于:java.lang.StringBuffer线程安全的可变字符序
    列。一个类似于String的字符串缓冲区,但不能修改。StringBuilder与该类相比,通常应该
    优先使用java.lang.StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,
    所以速度更快。为了获得更好的性能,在构造StringBuffer和StringBuilder时应尽可能指定
    它的容量。如果字符长度不超过16个字符就不用了.相同情况下StringBuilder比使用
    StringBuffer仅能获得10%~15%左右的性能提升,但也冒多线程不安全的风险。除非你能确定
    你的系统瓶颈在StringBuffer上,并且确定你的模块不会再运行在多线程模式下,否则还是
    使用StringBuffer。
      

  5.   

    直接看源码最能说明问题了,StringBuffer的方法加了synchronized关键字,所以线程安全。