Java学习记录——错题总结(十四)

第一套

1.设 x = 1 , y = 2 , z = 3,则表达式 y += z-- / ++x 的值是( )。

正确答案: A
3
3.5
4
5

y是2,返回的结果是2+(z–/++x),再来看z–/++x,结果应该是3/2,但是因为x,y,z都是int型的,所以最后的返回值只能是int,这时候z–/++x的值就是1,那么最终的结果就是2+1=3

运算符的优先级:
一般是单目运算符优先级高于双目优先级,算术运算符高于逻辑运算符。

2.面有关java object默认的基本方法,说法错误的是?
正确答案: B
equals(Object obj) 指示某个其他对象是否与此对象“相等”
copy() 创建并返回此对象的一个副本
wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法
toString() 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

B Object中没有copy方法

3.下面哪些情况会引发异常:
正确答案: A B C 你的答案: A B C (正确)
数组越界
指定URL不存在
使用throw语句抛出
使用throws语句

1、throws出现在方法头,throw出现在方法体 2、throws表示出现异常的一种可能性,并不一定会发生异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。 3、两者都是消极的异常处理方式,只是抛出或者可能抛出异常,是不会由函数处理,真正的处理异常由它的上层调用处理。

第二套

1.对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。
正确答案: B 你的答案: A (错误)
正确
错误

运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出

Java异常都继承自类Throwable,Throwable子类有Error和Exception,其中Exception又分为运行时异常和编译时异常。编译时异常是未雨绸缪性质的异常,是防范,需要显示处理。运行时异常是程序员问题造成,并不强制进行显示处理。

2.下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换:
1
byte[] src,dst;

正确答案: B 你的答案: A (错误)
dst=String.fromBytes(src,“GBK”).getBytes(“UTF-8”)
dst=new String(src,“GBK”).getBytes(“UTF-8”)
dst=new String(“GBK”,src).getBytes()
dst=String.encode(String.decode(src,“GBK”)),“UTF-8” )

答案:B
操作步骤就是先解码再编码
用new String(src,“GBK”)解码得到字符串
用getBytes(“UTF-8”)得到UTF8编码字节数组

3.CMS垃圾回收器在那些阶段是没用用户线程参与的
正确答案: A C 你的答案: A D (错误)
初始标记
并发标记
重新标记
并发清理

用户线程(user-level threads)指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
CMS的GC过程有6个阶段(4个并发,2个暂停其它应用程序)

  1. 初次标记(STW initial mark)
  2. 并发标记(Concurrent marking)
  3. 并发可中断预清理(Concurrent precleaning)
  4. 最终重新标记(STW remark)
  5. 并发清理(Concurrent sweeping)
  6. 并发重置(Concurrent reset)
    在初次标记,重新标志的时候,要求我们暂停其它应用程序,那么这两个阶段用户线程是不会参与的

第三套

1.如下代码的 结果是什么 ?

class Base {
    Base() {
    System.out.print("Base");
    }
}
public class Alpha extends Base {
    public static void main( String[] args ) {
        new Alpha();
        //调用父类无参的构造方法
        new Base();
    }
}

正确答案: B 你的答案: C (错误)
Base
BaseBase
编译失败
代码运行但没有输出
运行时抛出异常

选B
子类构造器的默认第一行就是super(),默认调用直接父类的无参构造。这也就是一旦一个子类的直接父类没有无参的构造的情况下,必须在自己构造器的第一行显式的指明调用父类或者自己的哪一个构造器。、

2.以下说法哪个是正确的()
正确答案: A B C D 你的答案: A C D (错误)
IOException在编译时会被发现
NullPointerEception在编译时不被发现
SQLException在编译时会被发现
FileNotFoundException在编译时会被发现

编译时能被发现的是必须加上try catch的异常,这些异常在编译时可以被发现,如果异常编译时不一定发生,如除以0异常,指针为空异常。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值