java中Sting和Stringbuilder的一个例题,stingstringbuilder
分享于 点击 4785 次 点评:53
java中Sting和Stringbuilder的一个例题,stingstringbuilder
最早的题目来源:
String s1 = new StringBuilder("go").append("od").toString();System.out.println(s1.intern() == s1);
String s2 = new StringBuilder("ja").append("va").toString();System.out.println(s2.intern() == s2);
返回值一个是true,一个是false
原因:java在新建一个调用string.intern的时候会获得这个常量池中的引用所指向的对象,所以第一个对象由于java常量池中没有这个对象,所以String.intern()指向的为创建的good对象,故返回true,而java常量池中本身就有一个java对象,故指向常量池中的对象。故返回false。
如果将代码改变为
public class Main { public final static String s="good"; public static void main(String[] args) { String s1=new StringBuilder("go").append("od").toString(); System.out.println(s1==s1.intern()); String s2=new StringBuilder("ja").append("va").toString(); System.out.println(s2==s2.intern()); } }
则返回两个false
相关文章
- 暂无相关文章
用户点评