java -- 如何记住"=="与equals的区别?

来源:互联网 发布:看股票行情的软件 编辑:程序博客网 时间:2024/05/18 03:55

通俗的理解

下面文字主要摘自:知乎问答

==是看看左右是不是一个东西。equals是看看左右是不是长得一样。

术语来讲的区别
1.==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.==是指对内存地址进行比较
equals()是对字符串的内容进行比较
3.==指引用是否相同
equals()指的是值是否相同
补充
4. == 可以用来比较基本类型。(int,double,等等)
5. equals()的存在,是为了让用户自己去定义所谓的相等。(标准在开发者心中)

代码示例

基本类型举例

int a = 1;int b =1;a==b;//真

String,对象,基本类型两面性

  • string在”==”以及”equals()”规则上是一致的
String str1 = "data";String str2 = "data";str1 == str2;//真str1.equals(str2);//真

对象类型

StringBuilder sb1 = new StringBuilder("hello");StringBuilder sb2 = new StringBuilder(sb1.toString());sb1 == sb2 //假sb1.equals(sb2)//假sb1.toString().equals(sb2.toString());//真【string类型会采用字符串匹配方法比较】
1 0
原创粉丝点击