常用类String类详解

/*
String是不可变类,String对象一旦声明后不可改变

java.lang.String是字符串类型
1.字符串一旦创建不可再改变,"abc"字符串对象一旦创建,不可在改变成"abcd"
2.提升字符串的访问效率,在程序中使用了"缓存"技术,所有在java中使用双引号
的字符串都会在"字符串常量池"中创建一份,字符串常量池在方法区中被存储
3.在程序执行过程中,如果程序用到某个字符串,例如"abc",那么程序会在字符串常量池中
中去搜索该字符串,如果没有找到字符串则在字符串常量池中新建一个"abc"字符串,如果找到
就直接拿来用,字符串常量池是一个缓存区,为了提高访问字符串的效率
*/


public class fuck1{

public static void main(String[] args){

//创建一个"abc"字符串对象,该对象的内存地址,让s1保存
//s1是一个引用,s1指向"abc"对象
String s1="abc";

//可以让s1重新指向吗?可以,s1是一个局部变量,s1前面没有final,所以s1可以重新指向
//但是"def"字符串本身不可变
String s6="def";

String s2="hello";//在字符串常量池中新建一个"hello"对象,该对象不可变
String s3="hello";//从字符串常量池中直接拿来用,所以内存地址一样
System.out.println(s2==s3);//true

//new了两个对象,内存地址不可能一样
String s4=new String("ddd");
String s5=new String("ddd");
System.out.println(s4==s5);//false

//比较两个字符串是否一致,必须使用String类型提供的equals方法
System.out.println(s4.equals(s5));//TRUE

}

}

猜你喜欢

转载自blog.csdn.net/rolic_/article/details/80264186