字符串那点事

xiaoxiao2021-02-28  145

public class StringTest { public static void main(String[] args){ String s1="abc"; String s2="abc"; String s3=new String("abc"); System.out.println("s1==s2: "+(s1==s2)); System.out.println("s1==s3: "+(s1==s3)); } } 对于直接创建的字符串,会检查constant pool中是否存在,如果有,直接指向它 String s1="hello"; String s2=new String("hello"); System.out.println("s1==s2: "+(s1==s2)); System.out.println("s1.equal(s2): "+(s1.equals(s2))); s2=s2.intern(); System.out.println("s1==s2: "+(s1==s2)); /*用new 创建的则原因在于 intern 这个方法返回的是 返回字符串对象的规范化表示形式, 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定), 则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。*/
转载请注明原文地址: https://www.6miu.com/read-21712.html

最新回复(0)