String

JAVA学习网 2019-10-31 21:18:01

/**
 * 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
    }
    
}

阅读(2650) 评论(0)