在信息技术飞速发展的今天,Java作为一门流行的编程语言,已经广泛应用于各行各业。作为Java研发工程师,您将有机会参与百度众多核心产品的研发,与一流的技术团队共同打造卓越的软件产品。我们期待您拥有扎实的Java技术基础,熟悉常用的开发框架,并且具备良好的问题解决能力。下面是一道笔试题,旨在考察您在Java领域的实际技能和问题解决能力。

1.请解释 Java 中的继承和多态性。
2.请描述一下 Java 中的垃圾回收机制。
3.请解释一下 Java 中的线程安全性。
4.请解释一下 Java 中的异常处理机制。
5.请描述一下 Java 中的 I/O 流。
6.当请求过多,超出线程池负荷的时候,会触发拒绝策略。下列选项中,对于拒绝策略的描述错误的是( ):
A:CallerRunsPolicy,线程调用运行该任务的 execute 本身,此策略提供简单的反馈控制机制,能够减缓新任务的提交速度。
B:AbortPolicy,处理程序遭到拒绝将直接抛出异常,丢弃任务。
C:DiscardPolicy,不能执行的任务将被删除。这种策略将丢弃任务,同时也会抛出异常。
D:DiscardOldestPolicy,如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序。
参考答案:C
7.下列关于AOP术语的描述中,错误的是( ):
A:Joinpoint,是指目标对象上所定义的各个方法。
B:Pointcut,是用来定义当前的横切逻辑准备织入到哪些连接点上。
C:Advice,用来定义横切逻辑,即在连接点上准备织入什么样的逻辑。
D:Aspect,是一个用来封装切点和通知的组件。
参考答案:A
8.JVM中有很多垃圾回收策略,其中会用到很多垃圾收集器,如果我们将垃圾收集器的作用范围划分为新生代和老年代的话,那么以下哪个选项中的所有收集器的作用域是属于老年代()
A:Serial收集器、ParNew收集器、Paraller Scavenge收集器
B:Serial Old收集器、Paraller Old收集器、CMS收集器
C:Serial Old收集器、Paraller Old收集器、Paraller Scavenge收集器
D:CMS收集器、ParNew收集器、Paraller Scavenge收集器
参考答案:B
9.下面几项关于Java程序初始化的几个原则:①静态对象(变量)优先于非静态对象(变量)初始化;②父类优先于子类进行初始化;③按照成员变量的定义顺序进行初始化;其中正确的有:()
A:①②
B:①③
C:②③
D:①②③
参考答案:D
10.以下哪个不是分布式锁的实现方式()
A:使用数据库乐观锁实现
B:使用数据库悲观锁实现
C:使用redis的setnx()、expire()方法,用于分布式锁
D:基于Zookeeper实现分布式锁
参考答案:B
11.对于数列4、5、6、7、9、12、18、23,如果采用折半查找元素9,请问需要查找几次?()
A:2
B:3
C:4
D:5
参考答案:B
12.现有一字符串"hello world",使用哈夫曼编码最少使用多少bit内存:()
A:4
B:32
C:64
D:88
参考答案:B
13.已知现有一个大小为4初始状态为空的栈,现在有一组数据经过这个栈后,最终的数据顺序是:2 5 4 1 3,问原始的进栈数据不可能是以下的哪组
A:1 4 5 2 3
B:5 2 3 1 4
C:3 4 5 2 1
D:4 1 3 5 2
参考答案:D
14.假设有一张表test,表中存放着全国的城市信息以及其所在的省份,现在要以每个省份包含名称以'州'为结尾的城市数量降序排序,包含相同数量的省份以省份名称降序拍戏,最终输出第二多以及第三多的省份以及数量,那么下面正确的sql语句是 <blockquote> create table `test`( `id` int(11) not null auto_increment, `province` char(50) not null comment '省份名称', `city` char(50) not null comment '城市名称', primary key(`id`), unique key `idx`(`province`, `city`) )engine = innodb; </blockquote>
A:select province, count(*) c from test where city like '%州' group by province order by c desc, province desc limit 2,1
B:select province, count(*) c from test where city like '%州' group by province order by c desc, province desc limit 1,2
C:select province, count(*) c from test where city like '州%' group by province order by c desc, province desc limit 2,1
D:select province, count(*) c from test where city like '州%' group by province order by c desc, province desc limit 1,2
参考答案:B
15.假设有必修课成绩表course,每位学生的期末考试成绩以及补考成绩都录入到course表中,学号为20190001的同学想查询一下自己未通过的课程的课程编号与课程名称,那么下面正确的sql语句是 <blockquote> create table `course`( `id` int(11) not null auto_increment, `sid` int(11) not null comment '学号', `cid` int(11) not null comment '课程编号', `cname` char(50) not null comment '课程名称', `score` int(11) not null comment '分数', primary key(`id`) )engine = innodb; </blockquote>
A:select distinct cid,cname from course where cid not in (select cid from course where score > 60 and sid=20190001)
B:select distinct cid,cname from course where cid in (select cid from course where score < 60) and sid=20190001
C:select distinct cid,cname from course where cid not in (select cid from course where score > 60) and sid=20190001
D:select distinct cid,cname from course where cid in (select cid from course where score < 60 and sid=20190001)
参考答案:C
16.序列{20, 23, 28, 41, 61, 31, 71, 76, 15, 30}构造为完全二叉树,完全二叉树再变为最小堆后,堆所对应的的中序遍历序列可能为()
A:76, 23, 41, 61, 20, 30, 31, 15, 28, 71
B:76, 23, 41, 20, 61, 30, 15, 31, 28, 71
C:76, 20, 41, 23, 30, 61, 15, 31, 28, 71
D:76, 23, 20, 41, 61, 15, 31, 20, 28, 71
参考答案:B
17.有如下递归函数test(n),其时间复杂度为多少?
int test(int n) {
if (n <= 1) return 1;
return (2 * test(n - 1) + 3 * test(n - 2));
}
A:O(logn)
B:O(nlogn)
C:O(n^2)
D:O(n^3)
E:O(2^n)
参考答案:E