写在左上角的:十题一集合,温故以知新
牛客 · 错题集锦 (三)
1、java中提供了哪两种用于多态的机制?
A、通过子类对父类抽象方法的覆盖实现多态。
B、利用重载来实现多态,即在同一类中定义多个同名的不同方法来实现多态。
C、利用覆盖来实现多态,即在同一个类中定义多个同名的不同方法来实现多态。
D、通过子类对父类抽象方法的重载实现多态。
(解析一下:
Java通过方法重写和方法重载实现多态
方法重写是指子类重写了父类的同名方法
方法重载是指在同一类中,方法的名字相通,但是参数列表不同
)
2、Java类Demo中存在方法func0、func1、func2、func3和func4,请求该方法中,哪些是不合法的定义?
public class Demo{
float func0(){
byte i = 1;
return i;
}
float func1(){
int i = 1;
return;
}
float func2(){
short i = 2;
return i;
}
float func3(){
long i = 3;
return i;
}
float func4(){
double i = 4;
return i;
}
}
A、func1
B、func2
C、func3
D、func4
(解析一下:
java自动类型转换:byte,short,char -> int -> long -> float -> double
)
3、关于Java堆,下面说法错误的是()
A、所有类的实例和数组都是在堆上分配内存的
B、对象所占的对内存是由自动内存管理系统回收
C、堆内存由存活和死亡的对象、空闲碎片区组成
D、数组是分配在栈中(解析一下:对象存储在堆中,数组是一种对象)
4、下面代码运行结果是()
public class Test{
public int add(int a, int b){
try{
return a+b;
} catch(Exception e) {
System.out.println("catch块");
} finally {
System.out.prinln("finally块");
}
return 0;
}
public static void main(String args[]){
Test test = new Test();
System.out.println("和是"+test.add(9,34));
}
}
A、catch块 和是43
B、编译异常
C、finally块 和是43
D、和是43 finally块
(解析一下:
1、finally{}代码块比return先执行
2、多个retrun是按顺序执行的,多个return执行了一个后,后面的return就不会执行了
3、无论有无异常抛出,finally都会在return返回前执行
)
5、下面哪些情况下需要使用抽象类?
A、当一个类的一个或多个方法是抽象方法时
B、当类是一个抽象类的子类,并且不能为任何抽象对象提供任何实现细节或方法体时
C、当 一个类实现多个接口时
D、当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时
6、java中关于继承的描述正确的是()
A、一个子类只能继承一个父类
B、子类可以继承父类的构造方法(解析一下:方法没有继承一说,只有重载和重写)
C、继承具有传递性
D、父类一般具有通用性,子类更具体
7、关于中间件特点的描述不正确的是()
A、中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率
B、中间件应支持标准的协议和接口
C、中间件可运行与多种硬件和操作系统平台尚
D、跨越网络、硬件、操作系统平台的应用或服务可以通过中间件透明交互
(
什么是中间件?
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使他们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
)
8、检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果
public class Inc{
public static void main(String[] args){
Inc inc = new Inc();
int i = 0;
inc.fermin(i);
i = i ++;
System.out.println(i);
}
void fermin(int i){
i ++;
}
}
A、0
B、1
C、2
D、3
9、以下关于Java语言异常处理描述正确的有?
A、throw关键字可以在方法上声明该方法要抛出的异常
B、throws用于抛出异常对象
C、try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句
D、finally语句块是不管有没有出现异常都要执行的内容
E、在try块中不可以抛出异常
10、有关线程的描述正确的是()
A、可以获得对任何对象的互斥锁定
B、通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
C、线程通过调用对象的synchronized方法可获得对象的互斥锁定
D、线程调度算法是平台独立的(线程调度算法参考:牛客 · 错题集锦 (一)第9题)