Java学习笔记(基础篇)—==与equals的区别

java学习笔记(基础篇)—==与equals的区别

[TOC]

1.java数据类型分为:

​ 基本数据类型
​ 引用数据类型

2.对于”==”

​ 用于基本数据类型相互比较. 比较二者的值是否相等
​ 用于引用数据类型相互比较. 比较二者地址是否相等
​ 不能用于基本数据类型与引用型比较

3.对于”equals”:

​ 不能用于基本数据类型比较(因为这是一个方法, 继承自object).
​ 用于进行对象的比较, 比较二者的引用地址是否相同

4.特殊情况:

​ 1)数值型基本类型和数值型类会存在自动装箱和自动拆箱
​ 2)字符串会以常量形式存在, 如果多个字符串变量值相同, 他们指向同一个地址,String类重写了equals()方法,比较的是内容是否相等。
​ 3)数值类型会存在类型自动转换

5.关于重写equals

​ 1)判断该对象是否是其本身:this==obj

​ 2)判断该对象是否为空:obj==null

​ 3)判断该对象是否和其属于同一类型:obj instanceof * 或者 obj.getClass == .class

​ 4)逐一比较,如全相同则是相等

6.思考

​ 如果是HashMap又要如何重写呢?如何判断里面存储的对象是否相等?

参考HashSet的实现源码。


 上一篇
Java学习笔记(基础篇)—java关键字与数据类型 Java学习笔记(基础篇)—java关键字与数据类型
java关键字与数据类型 Java语言的关键字是程序代码中的特殊字符。包括: . 类和接口的声明——class, extends, implements, interface . 包引入和包声明——import, package . 数据类
2019-07-20
下一篇 
Java学习笔记(基础篇)—变量与表达式 Java学习笔记(基础篇)—变量与表达式
java学习笔记(基础篇)—变量与表达式一:局部变量和实例变量 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义,再初始化,然后使用的规则。 作用域:指它的存在范围,只有在这个范围内,程序代码才能访问它。变量的生
2019-07-20
  目录