题目
选自牛客网
1.下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B.“?:” 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与
正确答案:ABCD
在Java中,instanceof
、? :
、&
和&&
都有其特定的用途和行为。下面是对每个选项的详细说明:A.
instanceof
用来判断某个实例变量是否属于某种类的类型或其子类的类型。
- 正确。
instanceof
是一个关键字,用于判断一个对象是否是某个类的实例,或者是否实现了某个接口。例如:if (obj instanceof String) { /* do something */ }
B.
? :
是三目条件运算符,用于基于条件执行不同的操作。
- 正确。这是一种简洁的条件表达式,语法为:
条件 ? 表达式1 : 表达式2
。如果条件为真,则返回表达式1的值;如果条件为假,则返回表达式2的值。C.
&
在逻辑运算中是非短路逻辑与,在位运算中是按位与。
- 正确。当用作逻辑运算符时,
&
会分别对两边的布尔值进行逻辑与运算,但不是短路的,即两边都会被计算。当用作位运算符时,&
对两个数字的二进制位进行按位与运算。D.
&&
是逻辑与运算符,且是短路运算。
- 正确。
&&
用于逻辑与运算,和&
类似,但它是短路的,即如果左边的表达式为false
,右边的表达式将不会被计算。
2.关键字super的作用是?
A.用来访问父类被隐藏的非私有成员变量
B.用来调用父类中被重写的方法
C.用来调用父类的构造函数
D.以上都是
正确答案:D
super
关键字在 Java 中有多种用途,主要用于与父类交互:
A. 用来访问父类被隐藏的非私有成员变量
- 正确。当子类中定义了一个与父类同名的成员变量时,子类中的变量会隐藏父类中的变量。使用
super
关键字可以访问父类中的成员变量,例如:super.variableName;
B. 用来调用父类中被重写的方法
- 正确。当子类重写了父类的一个方法时,可以通过
super
关键字来调用父类中相应的方法,例如:super.methodName();
C. 用来调用父类的构造函数
- 正确。在子类的构造函数中,可以使用
super
关键字来调用父类的构造函数,例如:public SubClass() { super(); // 调用父类的无参构造函数 }
3.以下哪几个是java中的集合类型?
A.Vector
B.Set
C.String
D.List
正确答案:ABD
在 Java 中,集合类型主要包括List
,Set
, 和Map
。Vector
是List
的一种实现。String
不是集合类型,而是一种基本的数据类型,用于表示文本字符串。因此,正确的选项是:
- A. Vector - 正确。
Vector
是List
接口的一个实现类,它提供了线程安全的方法。- B. Set - 正确。
Set
接口表示不允许重复元素的集合。- C. String - 错误。
String
不是集合类型,而是一个不可变的类,用于表示文本字符串。- D. List - 正确。
List
接口表示有序的集合,可以包含重复元素。
4.下列关于while循环、do-while循环和for循环说法错误的是
A.while循环先执行条件判断,do-while循环执行循环体
B.do-while循环结束的条件是关键字while后的条件表达式成立
C.for循环结构中的3个表达式缺一不可
D.while循环能够实现的操作,for循环也能实现
正确答案:BC
A. while循环先执行条件判断,do-while循环执行循环体
- 正确。
while
循环会在每次循环之前检查条件是否为真;而do-while
循环至少会执行一次循环体,然后检查条件是否为真来决定是否继续执行。B. do-while循环结束的条件是关键字while后的条件表达式成立
- 错误。实际上,
do-while
循环会一直执行,直到while
后面的条件表达式不成立(即为false
)时才停止循环。也就是说,do-while
循环至少会执行一次,然后根据while
后面的条件表达式来决定是否继续执行。C. for循环结构中的3个表达式缺一不可
- 错误。
for
循环结构中的三个表达式(初始化表达式、条件表达式、更新表达式)并非全部必须存在。例如,你可以省略其中的一个或多个表达式,只要保留分号即可。例如:或者:for (; ; ) { // 循环体 }
for (int i = 0; ; i++) { // 循环体 }
D. while循环能够实现的操作,for循环也能实现
- 正确。
while
循环和for
循环在功能上是等价的,任何可以用while
循环实现的循环逻辑也可以用for
循环实现,反之亦然。
5.下面选项中,哪些是interface中合法方法定义?()
A.public void main(String [] args);
B.private int getSum();
C.boolean setFlag(Boolean [] test);
D.public float get(int x);
正确答案:ACD
interface中的方法默认为public abstract 的 ,变量默认为public static final
B: 接口中不能定义私有方法