1.字符串时一个特殊的对象,字符串一旦被初始化,就不可以被改变;
(1)比较两种写法的区别:
String s1="abc";
String s2 = new String("abc");
s1在内存中是一个对象;
s2在内存中是两个对象;new是一个对象,“abc”是一个对象
(2)比较三种结果的区别:
String s1="abc";
String s2 = new String("abc");
String s3="abc";
s1==s2; false 原因:s1、s2是两个对象
s1.equals(s2); true 原因:String类复写了Equals方法,该方法判断字符串是否相同
s1==s3; true 原因:建立s1对象后,又建立一个s3,发现常量池中,已经有abc字符串,为了节约内存,直接把S3的引用指向和s1同一个对象;
|