public class HelloString {
public static void main(String[] args){
//JVM维持一个字符串常量池
String A = "abc";
String B = new String("abc");
//两种创建方式不一样,B是创建在堆上的
System.out.print("A==B:" + (A==B) + "\n");
//intern是查找JVM常量池,把已经有的常量的引用复制给目标对象
String C = B.intern();//因此A是等于C的
System.out.print("A==C:" + (A==C) + "\n");
//把C引用指向另一个对象,不影响原对象的值
C = "def";
System.out.print("A==C:" + (A==C) + "\n");
//关于equals与==,String重写了equals方法,如果字符串的值相同也认为相同
System.out.print("A.equals(B):" + A.equals(B) + "\n");
}
}
Java intern
最新推荐文章于 2021-10-21 19:35:26 发布