首页 > 学院 > 开发设计 > 正文

关于String字符串池

2019-11-08 02:36:49
字体:
来源:转载
供稿:网友

我们知道相同字符串值的对象,java不会创建不同的对象,而是共用!具体共用,参照native 方法 String.intern().

public native String intern();

具体请看我的demo

public class Test { PRivate static final String finalField = "a"; private static final String finalFieldB = "a"; public static void main(String[] args) { String strA = "a"; // a System.out.println(strA.intern()); //a System.out.println(finalField == strA); // true System.out.println(finalField == finalFieldB); // true System.out.println(strA == "a"); //true System.out.println(strA == "a".intern()); //true System.out.println(strA == strA.intern()); //true, strA refer to strA.intern() String strB = "a"; System.out.println(strB.intern()); System.out.println(strA == strB); // both strA and strB refer to strA.intern() System.out.println(strA.intern() == strB.intern()); String strC = new String("a"); System.out.println("strC = " + strC); System.out.println(strA == strC); //false , different reference System.out.println(strA.intern() == strC.intern());//true , different reference but with same intern }}

说明: 声明变量的时候直接赋值, 这个变量直接引用这个对象的intern()返回的对象。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表