通过boss直聘联系,然后会给两套线上笔试题,一套人生规划之类的、一套Java相关,做完之后有线上面试,线上面试通过了准备去公司面。
面试官问的面试题: 1 自我介绍
2 进程和线程
3 线程生命周期
4 问MySQL事务四大特性
5 数据库三大范式
6 sql 索引
7 项目中怎么优化的 (只回答用sql索引,插入500万条:1. 通过添加联合索引 2. 通过将limit转化为查某个位置)
8 ArrayList 和 LinkedList
9 怎么去重(1. HashSet 2. 他还说LeetCode有个原题是去重的)
10 Redis 五大基础本数据结构
11 项目中用到了哪些数据类型,(用到String类型:key存token,value存用户对象)
12 Linux 查看日志命令 、查看端口占用(我回答ps -ef | grep xx,他说这是查看进程的。。)
13 了解docker吗 (问了个啥问题忘了,我只会pull)
14 前后端跨域问题怎么解决
面试官上来先和我沟通他们部门主要研发方向,大概介绍了十分钟,然后开始正式面试,回答问题,总共面试一个小时
面试官问的面试题: MQ消息生产端哪种种情况会丢消息,以及如何避免丢消息。
MQ的作用。
Dubbo服务注册与发现的过程。
Redis的数据结构。
如何用Redis形成一个优先级队列。(但我不记得优先级队列这个结构了。然后 他又让我 想一下 怎么实现。。。)
双向链表如何添加数据,如果有序呢?
HashMap的数据结构。
Mysql的主键索引和其他的索引的区别。
覆盖索引。
binlog的作用。
redolog作用。
undolog作用。以及undolog的存储结构。
多线程因为什么才产生线程安全的问题。
共享资源值什么,如果把共享资源设置成static还会有问题吗?为什么?再加上设置了final关键字后 还会有问题吗?为什么?(我说不会,他要我说出原因,我不记得就说猜的。。。)
voliate关键字,什么是指令重拍
悲观锁乐观锁