package J20250714.demo03;

/**
 * @author WanJl
 * @version 1.0
 * @title TestString
 * @description
 * @create 2025/7/14
 */
public class TestString {
    public static void main(String[] args) {
        String ss1=new String("张三");
        String ss2=new String("张三");
        //使用==进行比较字符串对象，比较的是对象的地址
        System.out.println(ss1==ss2);   //都是创建了对象，地址不一样，肯定不是一个对象

        String s1="张三"; //其实走的是字符串常量池
        String s2="张三";//再定义一个变量的时候，
        // 会先再常量池里找是否存在这个值，如果有，就直接引用
        //System.out.println(s1==s2);

        char[] arr={'h','e','l','l','o'};
        String ss3=new String(arr);
        System.out.println(ss3);

        //一般来讲，我们创建了某个对象，或使用Java提供的某个类创建的对象。输出这个对象的时候
        //输出的都是这个对象的地址值。
        Teacher t=new Teacher();
        System.out.println(t);
        //但是String字符串比较特殊，输出的不是地址值，而是字符串内容。
        //因为String类在继承了Java中所有类的祖宗类(Object)类之后，重写了某一个方法(toString()方法)。

        //使用equals(String s)方法，比较两个字符串的时候，比较的就是字符串内容。
        System.out.println(ss1.equals(ss2));


    }
}
