Java每日笔试题错题分析(2)
- 一、错题知识点前瞻
- 第31题
- 第24题
- 第29题
- 第10题
- 二、错题展示及其解析
- 第31题
- 第24题
- 第29题
- 第10题
一、错题知识点前瞻
第31题
三目运算符类型转换
在三目运算符java开发的环境下可以简单理解为双目运算符的类型转换问题(便于理解),如果定义的两个变量共同参与三元运算符的后双目运算,那么返回的结果就是范围更大(精度更高)的类型,在java中常见的数据类型其范围从小到大(精度由低到高):byte<short<char<int<float<double,当类型相同时候,返回该类型。
第24题
局部变量生命周期
局部变量在该变量被声明并赋值时候创建,可以理解为“当代码执行到该变量被赋值的代码时才被创建”
第29题
实现方法覆盖所需条件
1、两个类都必须要有继承关系
2、重写之后的方法和之前的方法具有:
- 相同的返回类型
- 相同的方法名
- 相同的形式参数列表
3、访问权限不能更低,可以更高。
4、重写之后的方法不能比之前的方法抛出更多的异常,可以更少
第10题
注意i/10与10/i 的不同点
当i=0时,i/10是没有问题的,10/i会抛出ArithmeticException异常
二、错题展示及其解析
第31题
原理:
三目运算符类型转换
在三目运算符java开发的环境下可以简单理解为双目运算符的类型转换问题(便于理解),如果定义的两个变量共同参与三元运算符的后双目运算,那么返回的结果就是范围更大(精度更高)的类型,在java中常见的数据类型其范围从小到大(精度由低到高):byte<short<char<int<float<double,当类型相同时候,返回该类型。
解析:图中99.9的类型为double 型比9的类型short更高,因此9应该转化为更高类型的double型9.0,即答案为9.0
注意:9为short型而不是int型,当数字大于或等于65536时即为int型
第24题
原理:
局部变量生命周期
局部变量在该变量被声明并赋值时候创建,可以理解为“当代码执行到该变量被赋值的代码时才被创建”
解析:局部变量不是在方法被执行时被创建,而是当代码执行到该变量被赋值的代码时才被创建
第29题
原理:
实现方法覆盖所需条件
1、两个类都必须要有继承关系
2、重写之后的方法和之前的方法具有:
- 相同的返回类型
- 相同的方法名
- 相同的形式参数列表
3、访问权限不能更低,可以更高。
4、重写之后的方法不能比之前的方法抛出更多的异常,可以更少
解析:
C,D中方法没有相同的返回类型或形式参数列表,而B中private权限相比于protected低,因此B,C,D
pass ,而选项A的public权限相比protected更高,因此选项A正确
第10题
原理:
注意i/10与10/i 的不同点
当i=0时,i/10是没有问题的,10/i会抛出ArthemeticException异常
解析
当i=0时,i/10根本不会抛出ArithmeticException异常,这道题如果没看清楚的话很容易出错