一、选择题
选择题非常简单,都是基础题,什么死锁发生的条件、HashMap和HashSet查找插入删除的时间复杂度、Thread类和Runnable接口、排序复杂度比较、建堆调整堆等等,具体的也记不得了。
二、简答题
1. 写出至少8个Java常用的包名称
2. 简述Servlet的生命周期
3. 不用中间变量交换a和b的值
4. Overload和Override的区别,Overloaded方法能不能修改返回值类型?
三、编程题
1. 有N个人围一圈依次报数,数到3的人出列,问当只剩一个人时他原来的位子在哪里?
2. 有两个已递增有序的单链表pLinkList和qLinkList,将这两个链表合并成一个递增有序的链表,请自己定义单链表的结构。
3. 具体题目不记得,大概意思就是:从N个数中随机抽取出M个数(M < N),为了使抽取比较均匀,请自己定义抽取函数使得抽取的数既均匀又尽量随机。
四、扩展题
具体题目也记不清了,一大堆,大概意思是:有一个海量日志库,里面的每条日志记录都有相应的关键词和访问次数,但记录是无序的,为了挖掘客户偏好,需要找出前N个最高访问次数的日志记录,请设计算法尽量使时间复杂度和空间复杂度最低。
部分答案:
1. 写出至少8个Java常用的包名称
答:答出以下的任意8个就行了
1. java.lang Java 编程语言的基本类库
2. java.applet 创建 applet 需要的所有类
3. java.awt 创建用户界面以及绘制和管理图形、图像的类
4. java.io 通过数据流、对象序列以及文件系统实现的系统输入、输出
5. java.net 用于实现网络通讯应用的所有类
6. java.util 集合类、时间处理模式、日期时间工具等各类常用工具包
7. java.sql 访问和处理来自于 Java 标准数据源数据的类
8. java.test 以一种独立于自然语言的方式处理文本、日期、数字和消息的类和接口