校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > 运算符&优先级
题目

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

public class NULL {

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

}


A.

B.不能

解答

正确答案是 A

能正常运行

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

C 0条回复 评论

帖子还没人回复快来抢沙发