试题
考点

java语言-基本数据类型-java装箱和拆箱(后续会删除)

面5笔5

下面程序能正常运行吗()

public class NULL {

public static void haha(){
System.out.println("haha");
}
public static void main(String[] args) {
((NULL)null).haha();
}

}


A.

B.不能

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

正确答案是 A

能正常运行

输出为haha,因为null值可以强制转换为任何java类类型,(String)null也是合法的。但null强制转换后是无效对象,其返回值还是为null,而static方法的调用是和类名绑定的,不借助对象进行访问所以能正确输出。反过来,没有static修饰就只能用对象进行访问,使用null调用对象肯定会报空指针错了。这里和C++很类似。

评论
暂无评论

加载更多