转转-Java后端开发一、二面+hr面
转转流程是真的快,效率很高,面试体验也很好😆从笔试到发意向书一共用了不到两周的时间。
笔试-8.24日
一面-8.28日
自我介绍,项目介绍
- 项目的超卖如何解决的?
- 排序算法有哪些?
- 堆排序的时间复杂度?说说堆排序的排序过程,是怎么得到这个时间复杂度的?
- Object类中有哪些方法?
- wait()和sleep()的区别?
- 线程池的参数和作用?线程池的执行流程/原理?
- JVM内存模型,垃圾回收算法?
- HashMap的容量为什么要初始化为2的n次幂?
- HashMap和ConcurrentHashMap的区别?
- ConcurrentHashMap的扩容过程,源码有没有看过?(没有
- 说说你对Synchronized的理解,底层原理?
- 除了Synchronized,还知道Java中的其他锁吗?
- 说说你对Lock/ReentraLock的理解?有没有看过源码(没有
- 说说你对MySQL索引的理解,什么是聚簇索引和非聚簇索引?
- 如何根据索引查找数据的,索引执行的流程/原理?
- MySQL的事务隔离级别?
- MySQL是如何解决幻读的?
- Redis有哪些了解,基本数据类型有哪些,底层实现知道吗?
- Redis的缓存淘汰策略、持久化机制说一下?
反问环节
面试官的建议:多看书、多看源码,回答问题逻辑要清晰。
二面-8.29日
30分钟左右
上来就问一面的评价,了解一面中自己的不足吗?
项目如何限流?
添加购物车时,数据库层面是如何操作的?
知道接口的幂等性和非幂等性吗?
项目里面有没有考虑幂等性?
自定义线程池需要关注的参数有哪些?
线程池的运行原理?
阻塞队列满了以后,新进来的线程是执行队列头部的任务还是队尾的任务?
如果阻塞队列满了以后,系统重启/宕机,需要考虑什么情况?如何做?
我回答的是重新发起请求。然后面试官追问说重新发起请求会有什么问题。答:需要考虑幂等性。
synchronized锁的底层原理?
synchronized锁和lock锁的区别?
其余常规八股,记不清了
最后剩下几分钟,和面试官聊了会儿天,他问为什么笔试成绩不是很高,答曰数据库题目没写出来。然后面试官说那道数据库题目是他出的😐
二面更偏向于场景和项目。
hr面-8.31日
20分钟左右。
- 意向城市
- 为什么选择北京?有没有投递其他城市/公司?
- 投递岗位是看重公司的什么?
- 为什么选择Java后端开发这个岗位?
- 你觉得自己对于Java后端开发有什么优势?
- 为什么要做这个项目?
- 有没有实习经历?
- 和别人有有项目/实习的人相比,你觉得你有什么优势?
- 现在有没有课,能不能提前来实习?
- 父母对自己求职有没有提供建议?
- 读研/本科期间有没有做过学生干部或者志愿者?做志愿者感觉怎么样?
- 平时做项目过程中遇到过问题吗?怎么解决的?
反问环节。
大概这么多吧,其他问题记不清了。顺序可能不对。