JAVA中==和equals方法的区别,简单易懂
来源:互联网 发布:法医秦明 知乎 编辑:程序博客网 时间:2024/05/21 21:49
基本类型大家肯定知道是用==比较,这里只说引用类型
1:==一般用来判断基本类型的比较,如果是引用类型,则判断它们是否指向堆内存的同一个地址(注意这里是地址)
2:一个方法,一般用来判断逻辑相同,判断指向的堆内存的对象的值是否相同 (注意这里是值不是 地址),如果没有重写这个方法的话,默认继承的是object的方法,和==一样,一般需要重写这个方法(String类自动重写了此方法)
public boolean equals(Object obj) {
return (this == obj);
}
String a=new String("aaa");return (this == obj);
}
String b=new String("aaa");
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
上面的a和b因为new了两个对象,这两个对象虽然都指向了data区(也叫常量池,静态变量和常量都放在这)的同一个值"aaa",内容是一样,但是New出来的这两个对象的地址不同滴,所以为false,如果改为下面的方式就为true了:
String s1 = "aaa";
String s12= "aaa";
System.out.println(s1==s2);//true
这里的s1和s2直接指向常量池的数据,可看作数据和地址都是一样的!
比如new了个双胞胎a大毛和b二毛,外观啥的100%相似:
a==b吗?肯定不一样啊,它们是两个人啊,大毛怎么可能是二毛呢。
a.eqals(b)吗(此处重写eqals方法)?当然对了,他们长的一样啊。
==就像是 is(判断地址)
equals就像是like(判断值)
以下是String类的API 介绍
equals
public boolean equals(Object anObject)
- 将此字符串与指定的对象比较。当且仅当该参数不为
null
,并且是与此对象表示相同字符序列的String
对象时,结果才为true
。 - 覆盖:
- 类
Object
中的equals
- 参数:
anObject
- 与此String
进行比较的对象。- 返回:
- 如果给定对象表示的
String
与此String
相等,则返回true
;否则返回false
。 - 另请参见:
compareTo(String)
,equalsIgnoreCase(String)
0 0
- JAVA中==和equals方法的区别,简单易懂
- java中equals方法和“==”的区别
- java中equals方法和“==”的区别:(转)
- java中equals方法和“==”的区别
- java中equals方法和“==”的区别
- JAVA中==和equals方法的区别
- java中equals方法和“==”的区别
- Java中equals方法、==和hashCode的区别
- Java中equals方法和==号的区别
- Java中equals()方法和==的区别
- Java中==和equals()方法的区别
- Java中 ==和equals方法的区别
- Java中equals()方法和“==”的区别
- java中==和equals()方法的区别
- Java中equals方法和==的区别
- Java中==和equals方法的区别
- JAVA中equals方法和==的区别
- Java中equals方法和==的区别
- P、NP、NPC和NP-Hard问题的通俗化解释和详细区分
- 虚拟存储器
- linux基础之系统虚拟机管理
- 求2^100Mod5
- 《穆斯林的葬礼》读后感
- JAVA中==和equals方法的区别,简单易懂
- 我的个人博客地址
- nyoj-最小步数
- 二叉搜索树详解及实现代码(BST)
- Easy 3 Palindrome Number(9)
- C++智能指针(二)模拟实现三种智能指针
- 03-Java 逻辑运算符和条件语句
- Java 接口的使用
- online free data source