2021届阅文Java方向笔试卷

时长:120分钟 总分:100分

391浏览 1人已完成答题

题型介绍
题型 填空题 简答题
数量 21 15
1.
详细描述ThreadPoolExecutor的各个参数的含义,介绍一个任务...
问题详情

详细描述ThreadPoolExecutor的各个参数的含义,介绍一个任务提交到线程池后的执行流程。
2.
请简要说明Servlet中的生命周期
问题详情
3.
开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线...
问题详情

开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。
4.
请编写代码实现单例模式 ,类名为Singleton
问题详情
5.
写一个Map转换成JavaBean的工具类方法,实现如下mapToObje...
问题详情

写一个Map转换成JavaBean的工具类方法,实现如下mapToObject方法(使用Java反射,不允许使用第三方类库)

public static <T> T mapToObject(Map<String, Object> map, Class<T> beanClass){ 

}


6.
数据库操作是我们经常使用的一个技能, 请你完成一个简单的用户密码验证过程 ...
问题详情

数据库操作是我们经常使用的一个技能, 请你完成一个简单的用户密码验证过程 ,给定的条件如下:

数据库中存在个用户表:users ,表结构如下:
CREATE TABLE `users` (
  `uid` bigint(20) NOT NULL COMMENT '用户ID',
  `user_name` varchar(32) NOT NULL  COMMENT '用户账号',
  `password` varchar(64) NOT NULL  COMMENT '用户混淆密码',
  PRIMARY KEY (`uid`),
  UNIQUE KEY `u_user_name` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'
完善以下方法
public boolean verifyPassword(String username,String password) {
      Connection con = getConnection () // getConnection() 方法是个已有的方法可以获取到数据库连接 ,

      // here is your code
}

> 可以不用写Import 语句,只需要补充关键步骤即可


7.
介绍HashMap的数据结构、扩容机制,HashMap与Hashtable...
问题详情

介绍HashMap的数据结构、扩容机制,HashMap与Hashtable的区别,是否是线程安全的,并介绍ConcurrentHashMap的实现机制。
8.
介绍数据库连接池的实现方式。如何从连接池中获取连接、将连接放回连接池?使用...
问题详情

介绍数据库连接池的实现方式。如何从连接池中获取连接、将连接放回连接池?使用连接池的优势是什么?列举一下自己用过的连接池。
9.
什么是死锁?JAVA程序中什么情况下回出现死锁?如何避免出现死锁?
问题详情
10.
分布式锁有几种实现方式,并介绍每种方式的优缺点。
问题详情
11.
什么是TCP粘包拆包?为什么会出现粘包拆包?如何在应用层面解决此问题?
问题详情
12.
请大致描述一下BIO,AIO和NIO的区别? 
问题详情

请大致描述一下BIO,AIO和NIO的区别? 
13.
在JAVA语法中加载类的的方式有哪些?
问题详情
14.
建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C...
问题详情

建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。
15.
请列举5个spring框架中的注解,并说明注解的用法以及使用场景
问题详情
16.
大值求和
问题详情

给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和

17.
计算二进制数中1的个数
问题详情

给定一个int 数字,要求计算出int数字对应的二进制中1的个数
18.
日期计算
问题详情

根据产品策略某本书可以设置包月到期时间,需要计算指定时间到包月到期时间还有多少分钟,不足60S的不计入。


输入描述:
输入共两行
第一行为指定时间,格式为 2020-02-01 12:00:00
第二行为到期时间,格式为 2020-02-01 12:01:00
输入样例: 2020-02-01 12:00:00 2020-02-01 12:01:00 输出描述: 输出参数为一行,为剩余分钟如1输出样例 1
19.
对MAP进行排序
问题详情

map是一种开发过程中经常使用的k-v数据结构,有个map保存了书名和书字数的关系,编写代码对map里面的书按照字数进行升序排序


输入描述:
第1行为map项的个数
第2到N行为k-v,以逗号分隔,值大小为int类型(不小于0)
输入样例: 4 a2,100 a1,100 b,300 c,200 输出描述:
输出map按照值升序排序后的结果
输出样例 a2,100 a1,100 c,200 b,300
20.
字符串替换
问题详情

起点APP上允许用户对作品进行评论,为了防止用户恶意评论,发表不当内容,需要对用户发布的内容进行过滤,请写程序过滤用户发布内容中带有的QQ号(6~10位数字组成)
允许对内容严格操作,如用户发表了 作者大大666666,为你点赞 ,经过过滤后也可以为作者大大,为你点赞 ,将666666过滤掉了。

21.
判断是否是素数
问题详情

质数(又称素数),是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数)。请写个程序判断输入的数字是否是质数,如果是素数请输出:true,不是请输出false
输入描述: 输入待判断的数字输入样例: 2 输出描述:
判断的结果:true或false
输出样例 true
22.
爬楼梯次数
问题详情

有 n 个台阶,你一次能走 1 个或者 2 个台阶,那么请问,走完这 n 个台阶共有几种方式?
23.
回文子串数量
问题详情

给定一个字符串,返回这个字符串中有多少个回文子串。
两个相同的回文子串出现在不同的位置,认为是2个回文子串。
a、aa、aaa、aba、aabaa、abcba均认为是回文子串。
24.
链表翻转
问题详情

将一个给定的单链表反转,例:1-2-3-4-5,反转为5-4-3-2-1
25.
二叉树的最近公共祖先
问题详情

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
例:图中给定树 {3,5,1,6,2,0,8,#,#,7,4} 中,节点6、节点4的最近公共祖先为5。

26.
二分查找
问题详情

给定一个递增排序的数组,查找某个数字是否在数组中,如果在数组中,则返回该数字在数组中第一次出现的位置(从0开始);如果不在数组中,返回-1 。
不需要考虑给定的数组不是递增的情况。
务必使用二分查找的方式。
27.
矩阵乘法
问题详情


请编写程序实现矩阵的乘法

输入描述:
输入的第一行包括3个数字 ,为 m,p,n
接下来的m行数据为第一个矩阵的数据,每个数据之间用英文逗号,分割
接下来的p行数据为第二个矩阵的数据,每个数据之间用英文逗号,分割
输入样例: 2,3,2 1,0,-1 1,1,-3 0,3 1,2 3,1 输出描述: 请输出矩阵相乘的结果,一行内的数据用英文逗号,拼接输出样例 -3,2 -8,2
28.
二进制1的位数
问题详情

求出一个正整数转换成二进制后的数字“1”的个数。
例:数字23转为二进制为 10111,其中1的个数为4
29.
去除重复字符
问题详情

去除字符串中的重复字符,对于出现超过2次(包含2次)的字符,只保留第一个。
例:输入abcbdde,输出abcde。
30.
计算数组的最大乘积
问题详情

给定一个整型数组,移除数组的某个元素使其剩下的元素乘积最大,如果数组出现相同的元素 ,请输出第一次出现的元素 输入描述: 一个整形数组,每个字符串直接用逗号(,)分割输入样例: 5,8,6,9,2,2,7 输出描述: 请输出要被移除的数组索引,以0开始输出样例 4
31.
旋转数组
问题详情

给定一个整型正方形矩阵 Matrix,请把该矩阵调整成顺时针旋转90度的样子。

输入描述:
输入1+N行,第一行为矩阵行的个数N 
第2行到N+1数组中每行的数据,数字之间用英文逗号分隔
输入样例: 4 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 输出描述: 请遍历输出矩阵到一行输出样例 13,9,5,1,14,10,6,2,15,11,7,3,16,12,8,4
32.
第一个不重复的字符
问题详情

在字符串中找到第一个不重复的字符。
例:对于字符串“hellohehe”,第一个不重复的字符是“o”。
如果每个字符都有重复,则抛出运行时异常。
33.
计算朋友圈
问题详情

假设有N个用户,其中有些人是朋友,有些则不是。A和B是朋友,B和C是朋友,这样ABC就是一个朋友圈,请计算给定的朋友关系的朋友圈数。
给定一个 N * N 的矩阵 M,表示用户之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个人互为朋友关系,否则为不知道。你必须输出所有用户中的已知的朋友圈总数。

输入描述:
第一行输入为表示用户数N
第2到1+N行表示朋友之间关系,如果值为1表示有朋友关系
输入样例: 3 1,1,0 1,1,0 0,0,1 输出描述: 输出朋友圈数输出样例 2
34.
数据多项排序
问题详情

假设有个文件,文件的每一行是书信息数据,分4个部分用逗号(,)进行分割,格式如下

id,category,words,updatetime
id 表示书id,long类型,id不重复;
category 表示书的分类,int类型,请注意全部数据的分类只有几个
words 表示书的字数,int类型
updatetime 表示书的更新时间 ,格式为2020-02-01 23:00:00 

请编写程序对文件数据进行排序后输出id,排序优先级为: category>updatetime > words  > id , 增序排序
输入描述:
第1行数据为数据行数
第1+N行数据为书信息数据
输入样例: 4 66,20002,25919,2020-02-16 17:35:00 63,20004,9914,2020-02-16 17:35:00 60,20001,1982,2020-02-16 17:35:00 68,20004,1693,2020-02-16 17:35:00 输出描述:
请将排序后的ID输出,每行一个数据
输出样例 60 66 68 63
35.
使用堆栈实现队列功能
问题详情

请使用堆栈这一个数据结构实现简单FIFO(先入先出)队列,队列要实现两个方法: push、pop。
为自动测试方便,使用每行输入模拟操作:
1) push 1 表明向队列里面新增一个元素 1 , push  和元素之间用空格表示;
2) pop 表明输出当前队列里面的第一个元素,如果当前队列为空请输出null

请将每个输出以英文逗号拼接到一个字符串中。

36.
计算参数的hash值
问题详情

在和外部公司联调HTTP接口时,对方要求调用的接口需要计算token,给到的规则如下:
1) 所有的参数值必须经过urlencode,编码为utf-8;
2) 对编码后数据按照key值进行字典升序排序;
3)将所有的参数按照排序的顺序拼接成字符串 ,格式如下: k1=v1&k2=v2&k3=v3
4)  将第三步的算出的值计算md5值,md5加密的值小写

请你编写一段方法计算token值