String类型是字符串类型。。
- 字符串一旦创建不可以在改变。“abc”字符串对象一旦创建,不可以再改成“abcd”
- 提升字符串的访问效率:在程序中使用了“缓存”技术。所以在java中所有使用“双引号”括起来的字符串都会在“字符串常量池”中创建一份。字符串常量池在方法区中被存储。
- 在程序执行过程中,如果用到某个字符串,例如:“abc”那么程序救护在字符串常量池中去搜索该字符串,如果没有找到则在字符串常量池中新建一个"abc"字符串,如果找到就直接拿过来用。(字符串常量池是一个缓存区,为了提高访问字符串的效率)
public class StringTest01{ public static void main(String[] args){ //创建一个"abc"字符串对象,该对象的内存地址,让s1变量保存。 //s1是一个引用,s1指向 "abc" 对象. String s1 = "abc"; //可以让s1重新指向吗?s1是局部变量,s1前边没有final,所以s1可以重新指向。 //但是"def"字符串本身不可变. s1 = "def"; String s2 = "Hello"; //在字符串常量池中新建一个"Hello"字符串对象,该对象不可变 String s3 = "Hello"; //从字符串常量池中直接拿来用。 System.out.println(s2==s3); //true //比较两个字符串是否相等,不能用"==" String s4 = new String("abc"); String s5 = new String("abc"); System.out.println(s4==s5); //false //比较两个字符串是否一致,必须使用String类提供的equals方法. System.out.println(s4.equals(s5)); //true //以下程序执行结束之后,会在字符串常量池中创建3个字符串对象 //"aaa" "bbb" "aaabbb" String s6 = "aaa"; String s7 = "bbb"; String s8 = s6 + s7;
时间: 2024-10-23 02:27:11