当前位置: > 财经>正文

== 和 equals 的区别 保险金信托15和20的区别是什么呢

2023-07-28 11:51:25 互联网 未知 财经
== 和 equals 的区别是什么?

使用 == 比较

Java中的8种基本数据类型(byte,short,char,int,long,float,double,boolean)比较他们之间的值是否相等。 引用数据类型,比较的是他们在堆内存地址是否相等。每新new一个引用类型的对象,会重新分配堆内存空间,使用==比较返回false。

 

使用 equals 比较

equals方法是Object类的一个方法,Java当中所有的类都是继承于Object这个超类。 JDK1.8 Object类equals方法源码如下,即返回结果取决于两个对象的使用==判断结果。

public boolean equals(Object obj) {    return (this == obj);}

在实际使用中,一般会重写定义的class的equals方法,如JDK1.8 java.lang.String类的equals源码如下。 即两个字符串使用 == 相等  或者  两个字符串的所有组成字符都相等返回true,其他情况返回false。这里就定义String根据equals方法判断是否相等的逻辑。

public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String) anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}

 

总结:

 == 的作用: 基本类型:比较值是否相等 引用类型:比较内存地址值是否相等

equals 的作用: 引用类型:默认情况下,比较内存地址值是否相等。可以按照需求逻辑,重写对象的equals方法。

 

PS:可以延伸自己写代码比较一个基本类型的包装类对象使用 == 和 equals进行比较的结果

进一步详细文章还可以参考:https://www.cnblogs.com/smyhvae/p/3929585.htmlhttp://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.htmlhttp://www.cnblogs.com/zhxhdean/archive/2011/03/26/1996468.html

 

【Java面试题与答案】整理推荐 基础与语法集合网络编程并发编程Web安全设计模式框架算法与数据结构异常文件解析与生成LinuxMySQLOracleRedisDubbo

 

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。