博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的==和equals()
阅读量:6458 次
发布时间:2019-06-23

本文共 1364 字,大约阅读时间需要 4 分钟。

==和equals()都是比较相等的,那有什么区别和联系

1:基本类型(primitive types), 共有8种,即int, short, long, byte, float, double, boolean, char

使用==比较基本数据类型时比较的是数值是不是相等;

例如:

1 package equals; 2  3 public class Test { 4     public static void main(String[] args) { 5         int a=3; 6         int b=4; 7         int c=3; 8         b=c; 9         System.out.println(a==c);10         System.out.println(a==b);11     }12 }

 

因为基本数据类型是在栈中的,理解堆栈就好理解这个问题,具体参考我的另一篇博客》》》堆栈     http://www.cnblogs.com/GH0522/p/8193650.html

 

 那么当比较两个对象的时候比较的是 对象在内存的位置

1 package equals; 2  3 public class Test2 { 4  5     public static void main(String[] args) { 6         // TODO Auto-generated method stub 7         Double d = new Double(12.2); 8         Double d2 = new Double(12.2); 9         System.out.println(d==d2);10         11     }12 }

 

 因为这两个对象在堆中都拥有一个不同的地址虽然里面放的数值是一样的;

 

JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。例如String重写的equals方法就是比较内存中存放的值。

 

 

1 package equals; 2  3 public class Test2 { 4  5     public static void main(String[] args) { 6         // TODO Auto-generated method stub 7         String a=new String("a"); 8         String b=new String("a"); 9         System.out.println(a==b);10         System.out.println(a.equals(b));11     }12 }

 

 

 

 看其String类中被重写的equals

 

没被重写的Object中的equals则是实现自==

 

 

欢迎大家一起说出自己的想法。
你可能感兴趣的文章
HDU 1402 A * B Problem Plus FFT
查看>>
[CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
查看>>
leveldb学习:DBimpl
查看>>
MySQL存储引擎--MYSIAM和INNODB引擎区别
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>
apache 配置
查看>>
SHOW CREATE DATABASE Syntax
查看>>
mysql 视图
查看>>
Spring <context:annotation-config/> 说明
查看>>
lua
查看>>
Java排序算法(四):Shell排序
查看>>