------- android培训、java培训、期待与您交流! ----------
一.基本概念
1.字符串是一个特殊对象,一旦初始化就不能发生改变。如:String str = "abc"; //str 是String类的引用变量,"abc"是一个String类对象。String类对象一旦初始化后就不会被改变。
示例代码: String str = "abc";
String str="efg";
注:字符串对象abc并没变为字符串对象efg,只是String类的引用变量由指向"abc"变为指向"efg"。
2.创建字符串对象的两种方式
--调用构造函数:String str = new String();
--将字符串字面量赋给String类的引用变量:String str = "abc";
3.字符串比较
==比较:==比较两个基本数据类型时,比较的是数据的值。比较引用数据类型或对象时,比较的是堆内存地址。
equals()比较:Objecte类中的quals()方法比较的是数据的堆内存地址,String类中的quals()方法比较的是数据的值,因为String类覆盖了父类Objecte中的quals()。
示例代码:
String str1 = "abc";
String str3 = "abc"
String str2 = new String ("abc");
str1==str2 //false,==比较的是堆内存地址,new表示在堆内存中新申请一个内存地址。
str1.equals(str2); //true,String类中的quals()方法比较的是数据的值,两个字符串对象存储的都在"abc"。
str1==str3//true,没用使用new新申请一个内存地址,str3指向的之前创建的"abc"的堆内存地址。