String和StringBuilder的区别
String类型对象的特点:
1.它是引用类型,在堆上分配内存
2.运算时会产生一个新的实例
3.String 对象一旦生成不可改变(Immutable)
4.定义相等运算符(== 和 !=)是为了比较 String 对象的值(而不是引用)
String,StringBuilder类之间关系:
乍一看它们都是用于处理字符串的java类,而且长得也都差不多,相信肯定有人会以为StringBuilder都是继承自String这个类,即认为String类是其他两个类的超类。
但并非如此。
由此可以看出:
StringBuilder继承自AbstractStringBuilder这个类,而AbstractStringBuilder和String都继承自Object这个类(Object是所有java类的超类)。
String是不可变类,StringBuilder是可变类。
string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产