日常Java练习题(每天进步一点点系列)

简介: 日常Java练习题(每天进步一点点系列)

1、下列类在多重catch中同时出现时,哪一个异常类应最后一个列出()

正确答案: C 你的答案: C (正确)

ArithmeticException

NumberFormatException

Exception

ArrayIndexOutOfBoundException


题解:

ArithmeticException 是算数异常

NumberFormatException 是数据格式异常

Exception 异常

ArrayIndexOutOfBoundException 数组索引超过界限异常

先处理具体的异常,如果没有则放到一个大的范围之中Exception


2、若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于()

正确答案: D 你的答案: D (正确)

本地方法

最终方法

解态方法

抽象方法


题解:

含有abstract关键字的方法是抽象方法,抽象方法没有方法体以分号结束,抽象类可不包含抽象方法但声明了抽象方法的类必须定义为抽象类,并且抽象类、接口都不可以实例化。子类可继承抽象父类或实现抽象父类当中的所有抽象方法(两种方法皆可)


3、给定以下方法声明,调用执行mystery(1234)的输出结果?

//precondition: x >=0

public void mystery (int x)

{

System.out.print(x % 10);

if ((x / 10) != 0)

{

mystery(x / 10);

}

System.out.print(x % 10);

}

正确答案: B 你的答案: B (正确)

1441

43211234

3443

12344321


题解:

优先会输出1234%10=4,选B。后面不用看了


4、java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。()

正确答案: A 你的答案: A (正确)

正确

错误


题解:

例如平时有这样的用法

for(int i=0;i<10;i++){

a[i+1]=a[i]

}

这个i+1就是整数型表达式 或者a[5+3]就是a[8]


5、以下叙述正确的是

正确答案: D 你的答案: D (正确)

实例方法可直接调用超类的实例方法

实例方法可直接调用超类的类方法、

实例方法可直接调用子类的实例方法

实例方法可直接调用本类的实例方法


题解:

A错误,类的实例方法是与该类的实例对象相关联的,不能直接调用,只能通过创建超类的一个实例对象,再进行调用

B错误,当父类的类方法定义为private时,对子类是不可见的,所以子类无法调用

C错误,子类具体的实例方法对父类是不可见的,所以无法直接调用, 只能通过创建子类的一个实例对象,再进行调用

D正确,实例方法可以调用自己类中的实例方法


6、下面有关java object默认的基本方法,说法错误的是?

正确答案: B 你的答案: B (正确)

equals(Object obj) 指示某个其他对象是否与此对象“相等”

copy() 创建并返回此对象的一个副本

wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法

toString() 返回该对象的字符串表示


题解:

Object中没有copy方法


7、如下代码,执行test()函数后,屏幕打印结果为()

public class Test2

{

public void add(Byte b)

{

b = b++;

}

public void test()

{

Byte a = 127;

Byte b = 127;

add(++a);

System.out.print(a + " ");

add(b);

System.out.print(b + “”);

}

}

正确答案: D 你的答案: D (正确)

127 127

128 127

129 128

以上都不对


题解:

add()方法里面的修改值并不会起作用,而add(++a)会使a数值越界成-128,所以输出为-128 127


8、下面程序的输出结果为( )

public class Demo {

public static String sRet = “”;

public static void func(int i)

{

try

{

if (i%2==0)

{

throw new Exception();

}

}

catch (Exception e)

{

sRet += “0”;

return;

}

finally

{

sRet += “1”;

}

sRet += “2”;

}

public static void main(String[] args)

{

func(1);

func(2);

System.out.println(sRet);

}

}

正确答案: B 你的答案: B (正确)

120

1201

12012

101


题解:

①调用func(1),if不符合,直接进入finally,sRet=“1"

②finally语句中没有返回值,故继续向下执行,sRet=“12”

③调用func(2),if符合,sRet=“120”,此时有返回值!!!

④调用finally语句,sRet=“1201”

⑤因为已经有返回值了,finally之后的语句也不再执行,sRet=“1201”。


9、ServletConfig接口默认是哪里实现的?

正确答案: B 你的答案: B (正确)

Servlet

GenericServlet

HttpServlet

用户自定义servlet


题解:

GenericServlet类的实现接口中包括了ServletConfig接口,但是它自身的init(ServletConfig config)方法又需要外界给它传递一个实现ServletConfig的对象,就是说GenericServlet和ServletConfig的依赖关系既是继承关系,也是一种关联关系。


10、以下哪几种方式可用来实现线程间通知和唤醒:( )

正确答案: A C 你的答案: A (正确)

Object.wait/notify/notifyAll

ReentrantLock.wait/notify/notifyAll

Condition.await/signal/signalAll

Thread.wait/notify/notifyAll


题解:

Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、 notify(),使用Condition1的await()、signal()这种方式实现线程间协作更加安全和高效。


答案汇总:

1、正确答案: C

2、正确答案: D

3、正确答案: B

4、正确答案: A

5、正确答案: D

6、正确答案: B

7、正确答案: D

8、正确答案: B

9、正确答案: B

10、正确答案: A C


以上部分题解来自牛客评论区,感谢评论区大佬的解释。

相关文章
|
5月前
|
存储 Java
创建一个乘法练习题生成器 using Java
创建一个乘法练习题生成器 using Java
|
6月前
|
人工智能 Java
Java练习题-输出二维数组对角线元素和
Java练习题-输出二维数组对角线元素和
|
6月前
|
存储 Java 索引
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
|
6月前
|
Java
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历...
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历
44 0
|
6月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
|
6月前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
|
6月前
|
Java
Java练习题-输出斐波那契(Fibonacci)数列
Java练习题-输出斐波那契(Fibonacci)数列
|
6月前
|
存储 Java
Java程序设计练习题8异常处理
Java程序设计练习题8异常处理
161 0
|
6月前
|
算法 Java 程序员
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
57 0
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
|
6月前
|
Java
java字符串练习题8、同构字符串
java字符串练习题8、同构字符串
52 0
java字符串练习题8、同构字符串