java 中 equals 与 == 的区别
来源:互联网 发布:java web面试题 编辑:程序博客网 时间:2024/06/01 09:59
1.==
== 是一个运算符,用于比较 两个基本数据类型(内置数据类型)的值是否相等,或 比较两个引用型变量是否指向堆中的同一个内存地址,即是引用同一个对象。
public class c {public static void main(String[] args) {int a = 12;int b = 12;String c = new String("abc");String d = new String("abc");System.out.println( a == b ); // 输出true ,== 运算符可以计较两个基本数据类型的值是否相等 System.out.println( c == d ); // 输出false ,对象用==比较的是:字符串变量中存放的 是否 是相同的引用(地址),而不是判断值相等System.out.println( c.equals(d)); //输出true , 判断 字符串对象的值是否相等 应使用 equals() 方法}}
2.equals
1.equals() Java 中所有的类都继承Object这个超类,在Object类中定义了一个equals方法,这个方法的初始行为是比较对象的内存地址,Object类中的equals方法如下:
boolean equals(Object o){ return this==o;}在java类库中一些类重写了equals方法,如String,所以String对象不在是比较内存地址了,而是比较其中的值,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方法时用的是 继承自Object类的equals方法,比较的是内存地址。
阅读全文
0 0
- 【java中==与equals的区别】java中==与equals的区别
- java中equals的用法,与“==”的区别
- java中“==”与equals区别
- java中equals与==区别
- Java中"equals()"与"=="区别
- Java中equals()与==区别
- Java中equals与==区别
- java中“==” 与 equals 区别
- java中equals与==的区别
- java中equals() 与==的区别
- java中“==”与“equals”的区别
- java中“==”与“equals”的区别
- Java中==与equals的区别
- java中equals与==的区别
- java中equals与==的区别
- Java中== 与 equals的区别
- java中== 与equals的区别
- java中==与equals的区别
- Input类
- PostgreSQL 9种索引的原理和应用场景
- mysql--6.多表查询
- Docker的各种概念
- k近邻法
- java 中 equals 与 == 的区别
- Unity脚本生命周期常用方法
- 笔试面临的j摄像头问题
- 理解opreator操作符的应用
- UIToolBar使用
- 1041. Be Unique (20) Hash散列
- Java8新特性
- MyBatis框架入门详解
- Random类