关于java中null的强制转换

public class Test {
public static void greet(){
System.out.println("hello");
}
public static void main(String[] args){
((Test)null).greet();
}
}

会打印出:hello
但是原因是什么呢

null的对象在内存中只是一个引用而已,你加了强类型转换,就成了Test类,

你的greet()方法是静态的,所以可以执行,跟前面的对象是否为空没有关系,如果你的greet()方法不是静态的话,那前面的对象为null,系统肯定会抛出异常的!