Java选择题,求分析选项解答,第三小题
展开全部
答案是C:
理由是:
因为X是变量:
变量顾名思义无法确定的量,虚拟机在编译的时候,无法确定他数据类型的范围,有可能X会越界char类型范围,所以在编译的时候,虚拟机不认可!
而B这个选项:
char='a'+1;
虚拟机,可以直接确定,这个数字是否合法,简单说,'a'虚拟机直接识别为65,而1是常量,那不用说
虚拟机可以直接判断出这个数据类型合不合char范围!
可以很简单的测试,B选项里面你把1换成65535立马报错!
其实这个B选项在编译保存为CLASS文件的时候,是这样的!
char=66;虚拟机直接给赋值了!
你可以用反编译工具,打开class文件,一看就恍然大悟!!
所以答案是C
理由是:
因为X是变量:
变量顾名思义无法确定的量,虚拟机在编译的时候,无法确定他数据类型的范围,有可能X会越界char类型范围,所以在编译的时候,虚拟机不认可!
而B这个选项:
char='a'+1;
虚拟机,可以直接确定,这个数字是否合法,简单说,'a'虚拟机直接识别为65,而1是常量,那不用说
虚拟机可以直接判断出这个数据类型合不合char范围!
可以很简单的测试,B选项里面你把1换成65535立马报错!
其实这个B选项在编译保存为CLASS文件的时候,是这样的!
char=66;虚拟机直接给赋值了!
你可以用反编译工具,打开class文件,一看就恍然大悟!!
所以答案是C
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询