str1==str2和str1.equals(str2)的问题

来源:互联网 发布:ug高级仿真数控编程 编辑:程序博客网 时间:2024/05/17 03:31

问题:

@Testpublic void stringTest(){    String str1 = "hello";    String str2 = "hello";    System.out.println("str1.equals(str2) : "+ str1.equals(str2));    System.out.println("str1 == str2 : "+ (str1== str2));}//consolestr1.equals(str2) : truestr1 == str2 : true

equals比较的是两个数的数值,而==比较的是地址的引用,但这里为什么str1==str2返回是true,主要是由于和java中的常量池有关;在给str1赋值的时候,将hello的一起放入了常量池中,当再次将hello赋值str2的时候,先从常量池中查看是否存在hello的值,如果有,则直接取出,所以str1str2指的是同一个引用,因此返回的结果自然是true

阅读全文
0 0
原创粉丝点击