String string = new StringBuilder("计算机").append("软件").toString();
System.out.println(string.intern() == string);
String string2 = new String("计算机硬件");
System.out.println(string2.intern() == string2);
一个关于intern()方法和string、stringbuider的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- 软件求生 2017-11-09 07:23关注
返回字符串对象的规范化表示形式。
一个初始为空的字符串池,它由类 String 私有地维护。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。
它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。
所有字面值字符串和字符串赋值常量表达式都使用 intern 方法进行操作。字符串字面值在 Java Language Specification 的 §3.10.5 定义。
解决 无用评论 打赏 举报