Java-String类

2022-07-16  本文已影响0人  Eqo
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[] 类型的数组
用来一个字符一个字符的进行比较 看源码

上一篇下一篇

猜你喜欢

热点阅读