美文网首页
Java-String类

Java-String类

作者: Eqo | 来源:发表于2022-07-16 23:05 被阅读0次
    image.png

    普通的字符串常量在内存当中 是存放在 堆中的常量池当中的

    Sting str = "内容"

    面试题
    String str = "hello";
    String str2 = new String("hello");
    有什么不同
    str 是一个对象
    str2是两个对象

        public static void main(String[] args) {
            String str = "hello";
            String str2 = new String("hello");
            System.out.println(str == str2); //false
            // 比较两个字符换对象的内容
            System.out.println(str.equals(str2));//true
        }
    

    解析

    image.png
    1_当我们执行第一句话的时候String str = "hello"; 会现在常量池中找 hello
    2_当我们使用new 方法创建string对象的时候,会在堆内存开辟一个空间,把首地址返回给 str2 在里面会有一个char类型的数组
    3_这个char[ ]={} 类型的数组里面就存放了hallo 然后char 就指向常量池中的常量"hello"

    为什么要先有这个char[] 类型的数组
    用来一个字符一个字符的进行比较 看源码

    相关文章

      网友评论

          本文标题:Java-String类

          本文链接:https://www.haomeiwen.com/subject/bmhkirtx.html