昆明java培训
达内昆明广州春城路

18487146383

热门课程

关于String、StringBuffer、StringBuilder的知识点

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

昆明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培训

程序猿必学之Java 9——昆明达内

java集合-Iterator迭代

达内编程培训大神带你修炼技术!

选择城市和中心
贵州省

广西省

海南省