第一题
-
有一个压测场景开启了三个线程,每个线程需要加载完毕资源后需要其他线程也加载完毕后才能同时发起对目标服务的压测请用java代码简单实现
第二题
- 请问如下代码会存在什么问题?
List<User> getUsers(String[] ids){ // 根据ids去数据库查询符合要求的user数据 // 将数据库数据转换为user对象并添加至列表返回 }
第三题
-
new ThreadPoolExecutor(10, 20,1,TimeUnits.SECONDS
new LinkedBlockingQueue(10)
) 当前10个任务正在线程池中执行,如果再次提交一个新任务,此时线程池会如何处理?线程池中线程数会有什么变化?
第四题
(请务必完成)
- 现有一个推荐用户开通指纹营销业务,在严格模式下有A B C三个条件依次满足则推荐,在宽松模式下只要AB 两个条件依次满足才能推荐。尤其C条件,需要同时执行对风控和特征服务调用取得结果进行决策,作为多变的营销业务。我们未来可能开发出多种新模式,同时也会开发出新的条件策略,而且条件之间也有灵活组合的需求。请根据上述要求设计你的代码,保证可拓展性,符合开闭原则。另外请实现C条件代码,确保以执行最快速度完成结果并注意考虑系统超时问题。
public class RecommendService{
public boolean isRecommend(RecommendData data){
}
}
public class ResultChekcer{
//本方法完成对系统调用结果决策,直接使用无需实现
public boolean check(List<Result> result){
....
}
}
第五题
-
实现大小写数字转换。实现上限制千亿。(确保逻辑清晰简洁,并加上注释说明)
扫描二维码关注公众号,回复: 8512238 查看本文章
-
0 ->零
-
1100 -> 一千一百
-
1105 -> 一千一百零五
-
100000000000 一千亿
第六题
-
有如下格式日志,请使用shell管道命令实现根据A文件中17:20~17:35期间 doValidate的traceId找寻B文件中对应的日志信息
A 文件:
2019-03-04 17:20:16 doValidate [traceId12]
2019-03-04 17:21:17 doValidate [traceId13]
2019-03-04 17:35:17 doValidate [traceId13]
2019-03-04 18:20:16 doValidate [traceId14]
2019-03-04 19:20:16 doRegister [traceId14]
B文件
2019-03-04 17:20:17 xxxxxx2 [traceId12]
2019-03-04 17:21:18 xxxx22dd [traceId13]
2019-03-04 17:35:18 xxxx22dd [traceId13]
2019-03-04 18:20:17 xxxxed [traceId14]
2019-03-04 19:20:17 xxxsdsdfs [traceId14]