String str1 = "hello";//一个字符串就是一个String类的匿名对象,匿名对象就是已经开辟了堆内存空间的并可以直接使用的对象。这对象内存中的内容是不可以改变的,当以后修改字符串时(str1="hello world";),会重新建立对象保存内容.你想啊,以后修改一次内容就重新分配个内存保存内容,这样效率会高?
StringBuilder:一个可变的字符字符序列的。主要有append\insert方法。当修改时,直接在以前内存中修改,不需要创建新的对象.这样效率是不是比String高?
但是是不是就用StringBuilder代替String就好了呢?不是StringBuilder效率高,但线程不安全。这里就是多线程了。。。 |