关于java字符串常量池

Posted caotao0918

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java字符串常量池相关的知识,希望对你有一定的参考价值。

今天发现一个好玩的东西

public static void main(String[] args)
    {
        String str1 = new StringBuilder("ja").append("va").toString();
        System.out.println(str1.intern() == str1);//false
        
        String str2 = new StringBuilder("in").append("t").toString();
        System.out.println(str2.intern() == str2);//false
        
        String str3 = new StringBuilder("in").append("tu").toString();
        System.out.println(str3.intern() == str3);//true
        
        String str4 = new StringBuilder("in").append("tu").toString();
        System.out.println(str4.intern() == str4);//false
        
        String str7 = new StringBuilder("tao").toString();
        System.out.println(str7.intern() == str7);//false
        
        String str5 = "caotao";
        System.out.println(str5.intern() == str5);//true
        
        String str6 = new String("xiao");
        System.out.println(str6.intern() == str6);//false
        
    }

我想应该是初始化时java把java这个字符串以及48个关键字都放在了字符串常量池中。。。

各位大佬,小弟猜的对不对?

 

以上是关于关于java字符串常量池的主要内容,如果未能解决你的问题,请参考以下文章

关于java字符串常量池

java 常量池

关于intern的一切

Java常见关于api面试题

Java中几种常量池的区分

Java String类相关知识梳理(含字符串常量池(String Pool)知识)