“ java”与intern()的字符串比较为false

时间:2019-06-05 10:05:19

标签: java string-comparison string-interning

下面是我的代码,我不知道为什么两个结果不同

这将打印re_path(r'^eForm',views.eticket{'template_name':'e_ticket_form.html'},name='eticket'),

re_path(r'^eForm$',views.eticket,{'template_name':'e_ticket_form.html'},name='eticket'),

但这会打印true

// Building "test"
String str2 = new StringBuilder("te").append("st").toString();
System.out.println(str2.intern() == str2); // true;

1 个答案:

答案 0 :(得分:4)

String“ java”被插入到其他地方,在代码之前执行的代码中(可能在某些JDK类中)。因此,str2.intern()返回已经被嵌入的“ java”实例,而不是== str2

另一方面,String“测试”在您调用之前没有被实习,因此您的intern调用将其添加到字符串池中,这意味着str2.intern()返回了{ {1}}。