您的位置:首页 > 编程语言 > Java开发

java---String类的intern方法

2016-11-14 10:07 337 查看
在《深入理解Java虚拟机》的第二章中的运行时常量池知识点的讲解中,说到“运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性,java语言并不要求常量一定只能在编译器产生明也就是并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中,这种特性被开发人员利用得比较多的便是String类的intern()方法”。

在网上查找了有关intern()方法的相关内容,下面推上代码:

package com.leetcode.test;

/**
* @author Demetria
* 这里测试java中String类的intern方法
*
*/
public class InternDemo {

public static void main(String args[]){
String s1="hello";
String s2=new String("hello");
System.out.println(s1==s2);//false

String s3=new String("hello").intern();
System.out.println(s1==s3);//true
}
}
当调用 intern()方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。这时候s1和s3就是相等的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java intern