Extensão de string: método intern ()

String s1 = new String("1") + new String("1");//s1变量记录的地址为:new String
s1.intern();//在字符串常量池中生成"11"。如何理解:jdk6:创建了一个新的对象"11",也就有新的地址;jdk7:此时常量池中并没有创建"11",而是创建了一个指向堆空间中new String("11")的地址;
String s2 = "11";
System.out.println(s1 == s2);//jdk6:false;jdk7:true

Resuma o uso do método intern () em String:

Em jdk6:

Tente colocar esse pool de constantes de string no pool de constantes de string.

Se houver no pool constante, não haverá método. Retorna o endereço do objeto no pool constante existente;

Caso contrário, ele fará uma cópia desse objeto, colocará no string pool e retornará o endereço do objeto no string pool;

Em jdk7:

Tente colocar esse pool de constantes de string no pool de constantes de string.

Se houver no pool constante, ele não será colocado. Retorna o endereço do objeto no pool constante existente;

Caso contrário, ele irá copiar o endereço de referência do objeto, colocá-lo no pool constante e retornar o endereço de referência no pool constante;

Acho que você gosta

Origin blog.csdn.net/guorui_java/article/details/109787051
Recomendado
Clasificación