程序员社区

(字符串面试题)什么是字符串池?

顾名思义,字符串常量池就是用来存储字符串的,它存在于java对内存中。
下图解释了字符串池在java堆空间中如何存在以及当我们使用不用方式创建字符串时情况。

(字符串面试题)什么是字符串池?插图

public class StringPool{
    public static void main(String[] args){
        String s1="cat";
        String s2="cat";
        String s3=new String("cat");
        System.out.println("s1==s2:",(s1==s2));
        System.out.println("s1==s3:",(s1==s3))
    }
}

结果如下:
s1= =s2:true
s1= =s3:false
以上代码会创建1或2个字符串。如果字符串池中已经有一个字符串“cat”,那么就会自动创建一个“cat”字符串。如果字符串常量池中没有“cat”,那么首先会在字符串池中创建,然后才在堆内存中创建,这种情况下就会创建2个对象了。

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (字符串面试题)什么是字符串池?

一个分享Java & Python知识的社区