`
张洪财
  • 浏览: 267365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

String 等号比较 和 equals

    博客分类:
  • java
 
阅读更多

1、"aa".equals("aa") 返回 true 。因为 String类重写了Object对象的equals

2、

String a1=new String("aa"); String a2=new String("aa");

System.out.println(a1==a2)  返回false

 

String a1="aa"; String a2="aa";

System.out.println(a1==a2) 返回true

 

"==" 都是地址比较,为什么 第二个a1==a2 就返回true。

 

 

原因是:"aa" 这样赋的值存在stack栈中,stack会先搜索栈区如果没有一样的值再新生产一个值。

 

而new String 出来的对象存在heap堆中,没new一次就是一个新对象。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics