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

提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放到文章最下面,希望给每天进步一点点的小伙伴更好的体验。

在这里插入图片描述

每天进步一点点!

1、在异常处理中,如释放资源,关闭数据库、关闭文件应由( )语句来完成。
正确答案: C 你的答案: C (正确)
try子句
catch子句
finally子句
throw子句

题解:
try:可能发生异常的语句
catch:捕获,并处理异常(printStackTrace()用来跟踪异常事件发生时执行堆栈的内容)
throw:方法内部抛异常
throws:声明方法异常
finaly:代码中无论是否有异常都会执行,清除资源

2、如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是()
正确答案: C 你的答案: C (正确)
0.5
2.5
0.4
2.0

题解:
x/=++y 相当于x=x/(++y),x为2.0 ,++y整体是值为5,但是最终的结果是为double所以是,2.0/5=0.4。

3、下面的程序输出的结果是( )
public class A implements B{
public static void main(String args[]){
int i;
A a1=new A();
i =a1.k;
System.out.println(“i=”+i);
}
}
interface B{
int k=10;
}
正确答案: B 你的答案: B (正确)
i=0
i=10
程序有编译错误
i=true

题解:
在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。实现类可以直接访问接口中的变量

4、下面哪种流可以用于字符输入:
正确答案: C 你的答案: C (正确)
java.io.inputStream
java.io.outputStream
java.io.inputStreamReader
java.io.outputStreamReader

题解:
首先B和D排除,题目是要求输入。
A和C之间,inputStream是字节流输入流;而inputStreamReader是对字符流的处理,inputStreamReader将字符流处理成字节流,题目要求是用于处理字符输入,所以选C。

5、以下不是修饰符final的作用的是( )。
正确答案: C 你的答案: C (正确)
修饰常量
修饰不可被继承的类
修饰不可变类
修饰不可覆盖的方法

题解:
final的作用:
1. 修饰变量,变量的引用地址不可变,但是地址中的内容可以变。
2. 修饰方法,方法不可被重写,但是还是可以重载
3. 修饰类,类不可继承。
不可变类,说的是一个类一旦被实例化,就不可改变自身的状态。常见的比如String和基本数据类型的包装类,对于这种不可变类,一旦在进行引用传递的时候,形参一开始就和实际参数指向的不是一个地址,所以在方法中对形参的改变,并不会影响实际参数。

6、以下代码执行后输出结果为( )

public class Test { 
    public static void main(String[] args) { 
        System.out.println("return value of getValue(): " +
        getValue()); 
    } 
     public static int getValue() { 
         try { 
             return 0; 
         } finally { 
             return 1; 
         } 
     } 
 }

正确答案: A 你的答案: A(正确)
return value of getValue(): 1
return value of getValue(): 0
return value of getValue(): 0return value of getValue(): 1
return value of getValue(): 1return value of getValue(): 0

题解:
如果try语句里有return,返回的是try语句块中变量值。
详细执行过程如下:
1.如果有返回值,就把返回值保存到局部变量中;
2.执行jsr指令跳到finally语句里执行;
3.执行完finally语句后,返回之前保存在局部变量表里的值。
如果try,finally语句里均有return,忽略try的return,而使用finally的return.

7、jre 判断程序是否执行结束的标准是()
正确答案: A 你的答案: A (正确)
所有的前台线程执行完毕
所有的后台线程执行完毕
所有的线程执行完毕
和以上都无关

题解:
其实这个题,就是在说守护线程和非守护(用户)线程的问题。后台线程就是守护线程,前台线程就是用户线程。
守护线程:是指在程序运行时在后台提供一种通用服务的线程,这种线程并不是必须的。同时守护线程的线程优先级都很低的。JVM中的GC线程就是一个守护线程,只要JVM启动,GC线程就启动了。
用户线程和守护线程几乎没有什么区别,唯一的区别就在于,如果用户线程都已经退出了,只剩下了守护线程,那么JVM直接就退出了。

8、You have the following code.Which numbers will cause “Test2” to be printed?

switch (x)
{
    case 1: System.out.println("Test1");
    case 2:
    case 3:
        System.out.println("Test2");
        break;
    default:
    System.out.println("Test3");
    break;
}

正确答案: B C D 你的答案: B C D (正确)
0
1
2
3
4

题解:
case 1和case 2后都没有break语句,故都会执行到打印Test2的语句

9、Consider the following code:
String s=null;
Which code fragments cause an object of type NullPointerException to be thrown?
正确答案: A C 你的答案: A C (正确)
if((s!=null)&(s.length()>0))
if((s!=null)&&(s.length()>0))
if((s==null)|(s.length()==0))
if((s==null)||(s.length()==0))

题解:
s为null,因此只要调用了s.length()都会抛出空指针异常。因此这个题目就是考察if语句的后半部分会不会执行。
A,单个与操作的符号& 用在整数上是按位与,用在布尔型变量上跟&&功能类似,但是区别是无论前面是否为真,后面必定执行,因此抛出异常
B,与操作,前半部分判断为假,后面不再执行
C,这里跟 & 和&& 的区别类似,后面必定执行,因此抛出异常
D,或语句,前面为真,整个结果必定为真,后面不执行

10、下面关于Applet的说法是正确的是
正确答案: A B C D 你的答案:A B C D (正确)
Applet可以在带有Java解释器的浏览器中运行
Applet类必须继承java.applet.Applet
Applet可以访问本地文件
Applet是Object类的子类

题解:
Applet是采用Java编程语言编写的小应用程序,选项描述的全部正确。

答案汇总:
1、正确答案: C
2、正确答案: C
3、正确答案: B
4、正确答案: C
5、正确答案: C
6、正确答案: A
7、正确答案: A
8、正确答案: B C D
9、正确答案: A C
10、正确答案: A B C D

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

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

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

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

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

共同努力!

Keafmd

  • 32
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛哄哄的柯南

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

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

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

打赏作者

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

抵扣说明:

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

余额充值