首页 > 代码库 > java基础知识回顾之---java String final类之intern方法
java基础知识回顾之---java String final类之intern方法
public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String hello = "Hello", lo = "lo"; System.out.print((hello == "Hello") + " ");//true System.out.print((Other.hello == hello) + " ");//true System.out.print((hello == ("Hel"+"lo")) + " ");//true System.out.print((hello == ("Hel"+lo)) + " ");//常量+变量 != 常量 false System.out.println(hello == ("Hel"+lo).intern());//true internMethod(); } /** * intern()用于操作维护常量池 * 一个初始时为空的字符串池,它由类 String 私有地维护当调用 intern 方法时, * 如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则, * 将此 String 对象添加到池中,并且返回此 String 对象的引用。 它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。 */ public static void internMethod(){ String str1 = "a"; String str2 = "bc"; String str3 = "a"+"bc";//等同于"abc",常量+常量=常量,存入常量池中 String str4 = str1+str2;//变量+变量 != 常量则不会存放在常量池中 System.out.println(str3==str4);//false str4 = (str1+str2).intern();//将 "abc"添加到常量池中,并且返回对象的引用str4 System.out.println(str3==str4);//true }}class Other { static String hello = "Hello"; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。