按照Java的命名规则来说,String这个单词的首字母是大写的,所以String是一个类。但String类是Java中比较特殊的类,String类是为创建和处理字符串而设计的。
接下来学习一下String的内容的比较。
由两种方式来比较:
1.第一种比较String的方式,“==”是关系算符,可以用于判断基本数据类型的变量值是否相等,或者判断引用数据类型变量的引用地址是否相同。
2.第二种比较String的方式,使用对象的equals()方法,用于判断引用对象的引用地址所指向的存储内容是否相等。
String的不可变性:
在使用String类是,要时刻记得String类是不可变类,即一旦String对象创建后,对象中包含的字符串就不能在进行任何的修改。若要更改String变量引用的字符串,那么只能放弃对原先字符串的引用,改为引用新的字符串..
string不可变的特性:
<span style="font-size:14px;">public class StringImmutable01{
public static void main(String[] args){
String str="java"; //定义字符串
System.out.println("改变前:"+str);
str+="language"; //修改字符串
System.out.println("改变后"+str);
}
}</span>
String变量str输出结果的改变,但改变的不是字符串,仅仅是str变量引用的发生了改变,原来堆内存中保存的“Java”字符串还是没有改变。
注意:执行str+=“language”时,除了Java环境产生“Java”和“Javalanguage”字符串常量以外,还存在一个“language”字符串常量。因为String类是不可变的,所以会产生很多的临时变量,会增加内存的消耗,使用StringBuffer或StringBuilder就可以很好的解决这个问题。