笔试题

简答题

1、当我们将对象放入HashSet集合中时,equals与hashcode方法的相关问题。

问1:当equals方法返回true时,hashcode方法的返回值是否要求相等?(C等级)并说明理由。(B等级)

问2:HashSet维护元素时使用的数据结构是什么?Equals与hashcode方法如何参与其中?(A等级)

 

2、异常的相关问题

问1:请说明异常的分类与继承关系。(C等级)

问2:请说明throw与throws关键字的区别。(B等级)

问3:假设有一try……catch……finally代码片段,如果finally中有代码会抛出checked异常,那么需要如何处理?并说明理由。(A等级)

 

3、关于方法重载与重写的相关问题

问1:请分别说明,当方法声明满足什么条件时,能够构成重写、重载。(C等级)

问2:请说明静态方法是否能发生重写、重载,如果不能,请给出理由。(A等级)

 

4、关于对象初始化的相关问题

问1:请说明类定义中都有哪些位置可以用来初始化成员变量?(C等级)

问2:如果成员变量由final关键字修饰,final是如何影响初始化的?(B等级)

问3:请解释“饿汉”单例模式的原理与特性。(A等级)

编程题

1、假设有一个byte数组名为data,存放编码为GBK的字符串数据,现要将这些数据写入编码为UTF-8的D:\taget.txt空白文件。请使用纯JDK自带API续写代码。(C等级)

 

byte data = …;   // 数组长度为1024

 

// 请在答题纸上实现后续功能。注意流的关闭。

 

2、假设有一Student类,代表学生。其定义如下:(B等级)

class Student {

         privateLong  id; // 学号,唯一,值不为null。

         privateString  name;  // 姓名,值不为null。

         privateInteger  age;  // 年龄,值不为null。

 

         //相关getter、setter方法省略

         …

}

现假设有一List集合stus包含若干Student对象,请按要求完成目标。

 

List< Student> stus = …;

a)   按id去重。
b)   基于a小问的结果,统计并打印每个姓名的重复出现次数。
c)   基于a小问的结果,按年龄排序并打印,正序、倒序均可。

 

3、请使用多线程模拟英雄联盟各个玩家等待开始游戏的逻辑。

首先,假设英雄联盟主线程调用如下方法开始一盘游戏:

 

public voidstartGame(){

         。。。

         // 主线程等待各个玩家就绪,只有所有玩家都准备好才继续走下去。

         xxx // 阻塞的等待逻辑

         。。。

}

 

然后,假设玩家线程调用如下方法通知英雄联盟主线程本玩家已经准备好:

 

public voidjoinGame(){

         。。。

// 其中某步:玩家线程通知主线程本玩家线程已就绪,等待其他玩家。

         xxx // 阻塞的等待逻辑

         。。。

 

}

 

请实现线程相互等待。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值