在intern()方法被调用时,如果String Pool(java 执行时会维持一个String Pool)中
已经有了相同的String对象时就会从Pool中返回该String对象,否则
新建的String 对象会被加入Pool中并返回该String对象的Reference
举例如下:
-------**************************************-------
String str1="wang";
String str2="wang";
System.out.println(str1==str2);
//true
-------**************************************-------
String str1="wang";
String str2=new String("wang");
System.out.println(str1==str2);
//false
-------**************************************-------
String str1="wang";
String str2=(new String("wang")).intern();
System.out.println(str1==str2);
//true
-------**************************************-------
从上面的三个例子大家不难看出:
当我们采用常量赋值的形式实例化String对象时
系统是先new 然后再调用String类的intern()方法
String intern()
最新推荐文章于 2024-09-10 10:21:38 发布