/**
* String 没有显示的继承关系,则默认继承Object
* 会继承Object中的方法,如equals,String中对equals进行了重写
* 重写之后比较的是字符串的值是否相等
* Object中的equals中怎么比较两个对象是否相等,就是 == 比较
* == 比较的是内容的地址
* Student类如果没有重写equals,则通过equals比较两个始终是否相等,等价 ==
*
* 自己重写equals方法,判断两个学生是否相等
*
*/
public class StringDemo {
public static void main(String[] args) {
//存储在常量区:先找,如果没有再创建
String s1 = "Hello Java!";
String s2 = "Hello Java!";
// new 是在堆中,每new一次,就会在堆中新建一次
String s3 = new String("Hello Java!");
String s4 = new String("Hello Java!");
// == 比较的是地址
System.out.println(s1 == s2);//true
System.out.println(s1 == s3);//false
System.out.println(s3 == s4);//false
//编译器对final修饰的变量,在编译期会进行宏替换
final String s5 = "Hello Java";
String s6 = s5 + "!";//编译之后的结果
System.out.println(s1 == s6);//true;当去掉final,就为false
}
}
String
阅读(2650) 评论(0)