Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java字符串池入口和堆入口机制_Java_String - Fatal编程技术网

java字符串池入口和堆入口机制

java字符串池入口和堆入口机制,java,string,Java,String,String s1=新字符串(“String”)在java中创建两个对象。一个在字符串池中,一个在堆中。现在,如果我在下面写另一条语句,比如String s2=“String”。它会在字符串池中创建另一个对象还是返回上一个对象的引用?String s2=“String”将从字符串池返回对象 String s1 = new String("s"); String s2 = "s"; // from pool String s3 = "s"; // from pool

String s1=新字符串(“String”)在java中创建两个对象。一个在字符串池中,一个在堆中。现在,如果我在下面写另一条语句,比如String s2=“String”。它会在字符串池中创建另一个对象还是返回上一个对象的引用?

String s2=“String”将从字符串池返回对象

    String s1 = new String("s");
    String s2 = "s"; // from pool
    String s3 = "s"; // from pool
    System.out.println(s1 == s2); // false
    System.out.println(s3 == s2); // true
String s2=“String”将从字符串池返回对象

    String s1 = new String("s");
    String s2 = "s"; // from pool
    String s3 = "s"; // from pool
    System.out.println(s1 == s2); // false
    System.out.println(s3 == s2); // true

通过调用新字符串(“字符串”)?“字符串”创建的对象是第一个要放入字符串池的对象,新字符串(“字符串”)是第二个对象(不是来自字符串池)。s2将被分配给字符串池中的对象。通过调用新字符串(“字符串”)?“字符串”-创建的对象是将放入字符串池的第一个对象,新字符串(“字符串”)是第二个对象(而不是字符串池)。s2将被分配给字符串池中的对象。