应女友要求分享一波自己总结的大厂面经,花了不少时间整理,在整理过程中也重新复习了一遍,每一题都是精心挑选的!话也不多说,直接开始正文吧!
结尾有惊喜哦!
面试官开始就坦言和我说不要有太多压力,我这边就是会问到你不会为止,太狠了。
SVN和Git的区别,fetch和pull的区别有冲突的时候需要怎么解决介绍一下Docker,Docker和操作系统映射的关系什么数据用MySQL数据库,什么数据放在Redis中,项目中实际遇到的举例项目中最经常用到的Redis数据类型为什么rua脚本能保证原子性Nginx动静分离的介绍,了解CDN吗缓存击穿,缓存一致性Redis中数据的脏读问题,如两个不同的线程先后往数据库中写数据,再往Redis中写数据,但是第二个线程先往Redis中写了,第一个线程又去修改了Redis中的数据,造成了MySQL和Redis中的数据不一致,如何解决?不使用锁如何解决?读不需要变化,写数据情况下,每次删除Redis中的数据分布式事务在项目中用什么实现的解释一下令牌保证接口幂等性(面试官以为令牌是实现了多点登录功能,用于认证中心)令牌生成的逻辑在秒杀系统中使用信号量的原因消息队列在业务中使用场景项目中JVM调优介绍JVM中的垃圾回收器介绍,了解Jstack不计算机网络分层以及对应的协议,为什么分层为什么TCP需要四次挥手看你笔试用了StringBuffer,谈谈它和Cache的区别(计算机组成中的Cache概念)Java学习路线JVM中的垃圾回收算法,为什么不同代用不同算法新生代标记的是什么对象,老年代标记的是什么对象学习使用的数据库版本,学了哪些知识MySQL5.7在快照和next-key保证下能避免幻读问题MySQL索引,InnoDB用的是什么索引,为什么B+树能提高查询性能磁盘读取的顺序啥的(操作系统还是计算机组成的知识?)顺序读的问题Redis容灾备份,持久化的实现设计方法保证Redis宕机时刚要存的数据也能持久化,不搭建集群主从复制MySQL的同步(持久化)如何实现AOF恢复和RDB恢复数据有什么区别,优劣锁的优化,升级,AQS读写锁在AQS中和其他锁最大的区别反问了解下字节的考核制度(面试官说字节基于对伙伴充分的信任,分配任务之后不会限定deadline,考核也有成熟的制度体系)全程除了一开始问Spring中为什么默认单例的问题之外,基本就是一边写代码一边问问题,不难发现一面考察主要是技术面的宽度,二面主要考察技术的深度。
第一个问题那因为单机没做过压测,面试官有点质疑项目的真实性,追问每次IO的数据量有多大(最后面试官也直接说没必要刻意说为了解决数据库IO存在的问题引入Redis,你提了数据库瓶颈那你得了解具体的瓶颈,不然就是减分项了)
反问环节面试官耐心地就部门业务和新人培养制度给我介绍了十多分钟,真的是很nice了。
耍了点小心机,特意提了下很欣赏有赞提倡的氛围,面试官问是特意了解过有赞吗,就顺水推舟夸了一波。
TCP三次握手及各个状态名称四次挥手的各个状态名称和流程描述POST和GET的区别POST的body的大小Java的类加载器介绍写过自定义类加载器吗双亲委派机制线程的生命周期,各个状态的转换调用什么方法wait和sleep的区别实现线程的四种方式实际使用线程池的场景线程池的核心参数让你手写线程池参数需要考虑什么因素volatile的作用及实现原理ThreadLocal作用、原理、应用场景、存在的内存泄漏问题及解决Redis持久化方式AOF和RDB的介绍Redis的事务索引的存储结构聚簇索引和非聚簇索引区别、优劣联合索引、覆盖索引什么时候适合建索引什么时候建立了索引但是没有走到,针对单列索引(查了下就是索引参与函数计算、转型、模糊查询等会索引失效,进行全表扫描)数据库隔离级别以及分别解决的是什么问题准备面试的日子压力很大,每天晚上都会看追两集剧再睡,也很枯燥,每天单调地重复笔试、面试、准备面试、练习笔试,但是只要有心,生活就有值得开心的地方,希望各位都能有满意的offer,共勉,此致。
更多JAVA面试题:关注下方公众号自行获取,还有更多大厂面试专题资料和视频哦!
