Java学习笔记 11 instanceof 、equal 和 == 的联系和区别

来源:互联网 发布:淘宝发票规则 编辑:程序博客网 时间:2024/06/16 01:25

本篇博文主要是对instanceof 、equals和==做的一个对比和联系

instanceof

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

用法:result = object instanceof class参数:Result:布尔类型。Object:必选项。任意对象表达式。Class:必选项。任意已定义的对象类。说明:如果 objectclass 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false

equals 和 ==

1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址

2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量;

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容.

我的总结

equals 和 ==就是比较数值,对于基本类型,无区别,但是对于一些类,==比较的是内存地址,equals比较的是对象的内容;instanceof是判断一个对象的类型是不是某一个类型。