先看下面的程序:
public class Type2 {
public static void main(String[] args) {
String a = null;
String b = new String();
System.out.println("a instanceof String :" + (a instanceof String));
System.out.println("b instanceof String :" + (b instanceof String));
}
}
结果是
a instanceof String :false
b instanceof String :true
也就是说如果一个对象的值为null的话,那么它不能算是任何类型的类对象。
这里还有一个有趣的现象,如果
public class Type2 {
public static void main(String[] args) {
String a = null;
String b = new String();
System.out.println("a instanceof String :" + a instanceof String);
System.out.println("b instanceof String :" + b instanceof String);
}
}
将b instanceof String外边的括号去掉的话,结果又会变成
true
true
也就是说instanceof 运算符的优先级要低于“+”的优先级。