华为OD 社招(Java后端)一面
一年工作经验
回答简写了,只是个人思路
1. mq在项目中的使用
答:消息同步,有配合redis的一些场景
2. 项目中怎么维护mq的高可用
答:镜像集群
3. redis在项目中怎么用的
答:缓存热点信息,例如用户信息、产品、市场等(项目相关),主要使用了hash和string
4.如果项目刚启动没多久,就有一大批访问过来,怎么避免redis没数据导致数据库压力过大
答:缓存预热
5. mq怎么保证的幂等性
答:配合Redis,每个消息有个唯一ID放在Redis上
6. 项目中多线程的使用
主要回答了线程池,其他方法没怎么用过
7. JVM了解吗
主要回答了区域划分,调优不太了解
8. 笔试题回顾
机考满分,主要是讲解了一下思路,题目如下:
8.1 正方形的个数
给定一些下标,问能够组成多少个正方形
思路:相当于暴力,只用了哈希表
8.2 子矩阵最大数字和
给定一个二维数组,求子矩阵最大的数字和是多少
思路:数据范围小,用的暴力
8.3 最长的特定子字符串
给定一个字符串,只有数字和字母,求最多一个字母的情况下,最长的子字符串多长
思路:双指针
9. 手撕代码
最大停车次数
给定月份、数据量n
接下来n行数据,每行的格式是: 车牌号 停车日期(格式是yyyy-MM-dd) 停车时间
求给定月份的情况下,这个月份按排序规则的最前五名的车牌号,不足五名按实际值
排序规则如下:
优先按照停车时间降序
停车时间相同按照停车次数
再者按照车牌升序
思路:优先队列 记得合并相同月份的数据
结束
还有些杂七杂八的小问题,暂不赘述