课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > 关于String、StringBuffer、StringBuilder的知识点
  • 关于String、StringBuffer、StringBuilder的知识点

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-19

  • 昆明Java培训班的老师今天给大家讲讲String、StringBuffer、StringBuilder的一些小经验。

    一说String、StringBuffer和StringBuilder,想必大家都很熟悉,这三者经常在我们的面试题中出现,昆明Java培训班的老师今天就给大家分享一下。

    首先来看下昆明Java培训班的老师看到的这两道面试题:

    1.String和StringBuffer区别,哪个效率高。

    答:String是对一串字符进行操作是不可变类

    StringBuffer是对一串字符进行操作,但是可变类

    String每用一次就需要生成一次效率低。

    2.StringBuffer和StringBuilder有什么区别?

    答:Stringbuilder和Stirngbuffer都是可变对象,Stringbuilder的运行速度快,线程不安全。

    这两道题的答案是正确的,但是在实际编码中如何来合理运用这三者呢?

    首先,String类型是不可变的,那么我们一定要切记不能用String在循环中使用连接字符串,特别是web工程中,当大量访问的情况下,这种方式消耗的资源非常大。如下:

    1 //这种连接方法一定要避免

    2 for(int i=0;i<100;i++){

    3    String a = "a";

    4    String b = "b";

    5    System.out.println(a+b);

    6 }

    那么,String应该用到什么情况下呢?我们根据它不可变的性质,当遇到重复使用的固定的字符串时,将字符串定义为静态常量,再使用StringBuffer或StringBuilder来进行拼接操作。如下:

    1 public class StringTest {

    2    

    3    private static final String STRING = "天";

    4    

    5    public void setSystem(){

    6        StringBuilder f = new StringBuilder("5");

    7        System.out.println(f.append(STRING));

    8    }

    9    

    10    public static void main(String[] args) {

    11        StringTest s = new StringTest();

    12        s.setSystem();

    13    }

    14 }

    接下来,讲StringBuffer和StringBuilder的使用场合。

    既然我们已知:StringBuffer是线程安全的,速度较慢的;而StringBuilder是不安全的,速度较快的。

    那么我们要分析一下,是保证线程安全,还是追求速度。

    我们在进行web项目开发时,通常会使用框架,那就要看看使用的框架是单线程的还是多线程的,如果框架是线程安全的,那我们就可以追求速度,使用StringBuilder即可。如果是不安全的,那最好使用StringBuffer。

    不过昆明Java培训班的老师提醒大家这也不是绝对的,在开发中可以根据项目要求来灵活选择。

    推荐文章

上一篇:Java-链表LinkedList源码原理分析

下一篇:Java基础--接口

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56