Java中的instanceof、getClass()、'=='的知识点

本文深入探讨了Java中instanceof关键字及getClass方法的使用技巧,通过具体示例对比了两者之间的区别,并解析了引用类型和数值类型的比较规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 注:
* 1.instanceof用法:实例变量 instanceof 类 (该类必须是实例变量的本类或者父类,否则编译失败,显示Inconvertible types)
* 2.而getClass(): return The Class object that represents the runtime class of this object.
* 用法:实例变量.getClass()==类.class ;如果想返回true,则实例变量必须是运行时指向对象*的实例。
* 3.==用于比较数值类型:即使数值类型不同,只要它们值相等,也会返回true。
* ==用于比较引用类型时,那么只有当两个引用变量的类型具有父子关系时才可以比较(否则会 报编译错误),而且这两个引用必须指向同一个对象才会返回true。
*/
class A{
public String toString(){
return “This is A Class!”;
}
}

class B extends A{
public String toString(){
return “This is B Class!”;
}
}

class Z{
public String toString(){
return “This is Class!”;
}
}

public class getClassTest {
public static void main(String[] args) {
A a1 = new A();
A a2 = new B();
B b = new B();
Z z = new Z();
System.out.println(“a1 instanceof A:”+(a1 instanceof A));//输出:a1 instanceof A:true
System.out.println(“a1.getClass()==A.Class:”+(a1.getClass()==A.class));//输出:a1.getClass()==A.Class:true
System.out.println(“a2 instanceof A:”+(a2 instanceof A));//输出:a2 instanceof A:true
System.out.println(“a2.getClass()==A.Class:”+(a2.getClass()==A.class));//输出:a2.getClass()==A.Class:false
System.out.println(a1==a2);//false
System.out.println(a2==b);//false
//System.out.println(a1==z); ==不能用于没有两个没有父子关系的引用变量
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值