日常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

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

每天进步一点点!
不进则退!

版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/

看完如果对你有帮助,感谢点击下面的一键三连支持!
[哈哈][抱拳]

请添加图片描述在这里插入图片描述
加油!

共同努力!

Keafmd

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛哄哄的柯南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值