`instanceof` 是 Java 中的一个关键字,用于测试一个对象是否为特定类的实例或其子类的实例。这是一个二元操作符,需要左边是一个对象引用,右边是一个类名或接口类型。如果对象是给定类的实例或其子类的实例,那么表达式的结果为 `true`;否则为 `false`。
这里有一些基本的用法示例:
```java
String str = "Hello";
if (str instanceof String) {
System.out.println("str 是 String 类型"); // 输出这个语句
}
if (str instanceof Object) { // 所有对象都是 Object 的子类
System.out.println("str 是 Object 类型或其子类的实例"); // 输出这个语句
}
int num = 5; // int 不是对象的实例,所以以下表达式结果为 false
if (num instanceof String) { // 这将不会输出任何内容,因为 num 不是 String 类型或任何其子类实例
System.out.println("num 是 String 类型"); // 不执行此语句
}
```
需要注意的是,对于基本数据类型(如 `int`, `char`, `boolean` 等),不能使用 `instanceof` 操作符。这些基本数据类型不是对象的实例。对于包装类(如 `Integer`, `Character`, `Boolean` 等),它们是对象的实例,因此可以使用 `instanceof` 操作符。