JAVA觀念一則XD

這段函式可以通過編譯~~~~也可以執行

你一定會覺得很奇怪~~~因為p已經設為null了呀~~~應該會拋出NullPointerException

可是她竟然又能編譯又能執行~~~真酷~~~~因為xxx是static的

public class Main {
static void xxx(){
System.out.println("bbb");
}
public static void main(String[] args) {
Main p = new Main();
p = null;;
p.xxx();
}
}

如果改成
public class Main {
void xxx(){
System.out.println("bbb");
}
public static void main(String[] args) {
Main p = new Main();
p = null;;
p.xxx();
}
}

就會發生編譯成功~~~執行出現異常~~~NullPointerException

沒有留言: