[每日一题]对比Java中的String、StringBuffer、StringBuilder
今天来个简单的题目,轻松一下:) 相信很多人对这个问题都不陌生,只要是个Java程序员,肯定就用过这几个类: 1、String是个不可变对象,这就意味着每次字符串拼接都是创建了新的实例 2、StringBuilder和StringBuffer都是专门用来做字符串拼接的 3、StringBuffer是线程安全的,StringBuilder是线程不安全的 4、线程安全是要付出代价的,所以StringBuffer比StringBuilder要慢一点点 OK,上面四条是不是倒背如流了?那问个具体问题: 1、以下虚构出来的三种写法哪个速度最快?哪个最差? String str = "I" + "love" + "Java" + "Python" + ... + "Golang"; String str = new StringBuilder("I").append("love").append("Java").append("Python").append(...).append("Golang").toString(); String str = new StringBuffer("I").append("love").append("Java").append("Python").append(...).append("Golang").toString(); 解答:因为都是字符串字面量