顺丰java校招面试总结
15号投递,做完测评。16号收到面试通知。
18号下午一面(30分钟不到)
面试官视频有问题,于是换成了电话面试。
-
介绍最近做的一个项目(用到了Redis,Dubbo,Zookeeper)
-
Redis为什么快
-
IO多路复用讲一下怎么实现的
-
Redis常用的一些数据结构
-
Redis中对String的存储是怎么优化的?
-
缓存击穿和穿透是什么,应该怎么预防
-
zookeeper选主是怎么做的
-
分布式锁的话你会选择用redis还是zookeeper
-
项目中有用到多线程的东西吗(Tomcat自带,不需要自己设计)
-
项目实现了点赞,要是多次点赞或者一次点赞的过程中发生了超时重传会怎么样。(两次点赞会取消点赞,重传的话是幂等性问题)
-
了解过网络吗(问到了那必须了解啊)
-
我们视频通话用的是什么协议,为什么用它(UDP)
-
UDP报文头包含了什么(一下没想起来,胡言乱语)
-
说一下java中的锁机制
-
自旋锁是什么
-
平时编程会用到什么数据结构
-
你的项目中哪些地方可以用到栈或者队列
-
多个人同时聊天的时候,怎么保证每个人都收到数据(消息队列)
-
详细说一下用消息队列的话应该要怎么做
-
其它没想起来,想起来再补充
反问:用到的技术栈。
20号下午二面(30分钟左右)
- 问项目大概有什么功能(没有让我完整介绍项目)
- 介绍一下RPC是什么,Dubbo由哪几部分组成。
- 介绍一下利用Dubbo具体是怎么通信的,比如一个登录的请求,是怎么传输的。
- 数据是明文传输的吗(是的)
- 你知道都有哪些序列化的协议(不知道😅)
- 你实现了热点文章的二级缓存,那文章大小过大的怎么办,读写的时候由于是单线程的会阻塞吗(会吧)
- 那有什么解决办法(拆分成多个key-value,或使用hash,多个field)
- Redis的一致性hash是什么(我说成了hash环,但面试官就让我讲讲hash环也行)(我感觉一致性hash就是hash环啊,请大佬赐教)
- Redis过期节点的删除策略
- 缓存雪崩是什么,怎么解决
- 布隆过滤器是什么
- ZK的CAP了解吗(忘了🤣)
- ZK的选举说一下
- 选举的过程中可以正常提供服务吗(我以为问的zk,我就说可以正常提供。结果会错意了,选举的时候选举服务器是不能提供服务的)
- Kafka了解过吗(了解过RocketMQ)
- 说说都由什么组成的(没有这么复习这个,说的不太行)
- 队列中的消息可以被重复读取吗
- 如果文章的数据过大,在传输的过程中会出现问题吗(我说的不会有什么问题,但后来查Dubbo好像不适合传过大的数据)
- 粘包是什么(乱说一通)
- 八大数据类型
- int占多少bit
- Integer可以用==比较吗
- 128以下呢
- ==和equal的区别
- 讲一下JVM都包括什么
- 堆都存什么
- 堆里面都发生什么GC
- 栈会垃圾回收吗
- 栈溢出是什么
- CMS处理新生代还是老年代(老年代吧)
- G1呢(都会处理吧)
- 运行时异常都有哪些(一下蒙了,尴尬了半天说了个栈和堆的溢出)(事后总结:空指针,数组下标越界,索引越界等)
- OM是什么(本来是OOM,听成了OM,说不知道是啥)
- 数据库查询的时候,怎么对多个变量进行排序(order by)
- Mybatis$和#的区别
- 索引是什么
- MySQL用的什么索引
- ACID是什么(一下没意识到是什么,面试官说了个原子性才想起来)
- Redis满足ACID吗
- 知道ConcurrentHashMap吗,讲一下,用了乐观锁还是悲观锁
- 将一下红黑树的一些性质
- 左旋右旋(不记得了)
- 时间复杂度是多少
- ArrayList的呢
- 反问(以为自己凉凉了,没问什么)
最后面试官还感谢我抽时间去面试,感觉自己已经凉透了。
但是写的过程中收到了通过的通知,下周终面。