我20年的十一月份之前一直在一家中型互联网企业做后端,接近十一月中旬工作交接完成后正式离职,我为什么离职?很简单,就是想去更大的企业,让自己有更大的发展空间和学习空间,就毅然裸辞了(注:大家不要学我裸辞,请慎重考虑)。
之后就一直在准备接下来的面试,如标题所示,我的目标就是这几家企业(网易、腾讯、CVTE、字节),其中就想去的还是字节。接下来就是和大家分享一下我的面试经历和面试所问到的问题。
文章后半段会分享一些我个人总结的大厂最新“面试真题笔记含答案”,需要wan整版的朋友
关注我点这里直达即可免费获取!
文章图片
一、CVTE一面:
- 稳定性设计
- 项目难点
- 数据库连接超时问题
- 数据库优化
- 索引计算,为什么会失效
- 数据库索引结构
- 聚簇索引,非聚簇索引的区别,回表问题
- 数据库的数据隔离级别,分别会出什么问题
- 生成订单,还没提交,发送一条mp消息去发货,但可能出现查询不到的订单状态情况
- 幂等性的保证
- 分布式锁的设计
- 面试后续:面试的结果过三天就出了,因为时间的问题,二面就推迟到挺后的,但是因为要走其他公司的面试流程,我综合考虑了一下,还是放弃了二面的机会,但还是非常感谢CVTE提供的面试机会!
一面:
- 服务部署的形式?如果某个机房宕机了呢?是依赖组件还是业务自己做的?了解这块是怎么做的?
- 流量突增平台会怎么处理?
- kafka在业务中的使用场景
- 针对项目中的一个小问题,了解整个调用链路
- 线程交叉打印12A34B56C,多种实现方式(一个打印数字,一个打印字母)
- Synchronized和lock的区别
- synchronized的锁优化是怎么样的
- String str=new String (a+b)会创建几个对象?字符串常量池在Jvm哪个位置
- spring的设计模式?工厂模式是怎么实现的?
- kafka的精准一次是怎么设计的?平时为了防止重复消费是怎么做的?
- 哨兵模式是为了解决什么?整个流程大概是怎么样的
- Java进程不见了,怎么定位?
- mysql的事务特性?原子性是怎么实现的(通过undo log日志实现)
- mysql的默认隔离级别?什么是不可重复读
- select poll epoll的区别?epoll的数据结构
- TCP三次连接,这个listen backLog有什么作用
- TCP四次挥手,Time WAIT发生在哪里?两个超时重传时间的作用?大量 timeout怎么处理?
- https的加密过程?证书认证的过程
- 进程间的通信方式?有哪些信号通信是不可靠的?为什么是不可靠的?
- 线程死锁的情况,怎么解决?
- 1 2 35 5 35 2 56 统计2 35出现的次数,按序排序
- 请求出现超时,但应用查不到这个请求日志,怎么排查
- 僵尸进程怎么解决?协程有了解过嘛
- 算法题:一个字符串,一个子字符串,判断子字符串在字符串中出现的次数,不要求连续,但有先后顺序 s=rabbbit t=rabbit,出现的次数为3
- 项目的挑战
- Kafka和rocketMq的区别
- 本地缓存和redis缓存的区别
- 本地缓存的场景
- redis的数据更新策略之类
- redis的部署方式,集群部署的丢失数据,主备切换过程
- Flink使用了什么功能
- 项目介绍
- 在项目中用了spring boot是怎么使用的?
- 线程池项目中怎么使用,遇到过什么问题
- Hashmap的了解
- threadLocal项目中怎么使用
- 乐观锁和悲观锁的区别,项目中的使用
- 题目:生产者和消费者的实现,wait 和notify
- Synchronized 和ReentrantLock区别
- CPU的内存模型
- Java的内存模型
- tcp的可靠性保证
- 为什么索引能查询速度
- redis的数据结构,排行榜的实现
- 分布式事务的实现
- spring事务
- spring bean的储存
- Java数据源怎么使用
文章图片
三、网易二面: 一面:
- guava和caffeine的区别
- HashMap作为本地缓存和caffeine的区别,本地缓存一般占用多少内存
- jvm的堆内存配置大概是怎么的,如果设置了堆内存的初始值为2g,启动的时候分配给这个进程的内存是多少
- 容器内存为3g,堆内存为2.8g,会有什么问题
- 创建很多线程池,导致oom,这种跟因为本地缓存太多导致的oom有什么区别
- 堆内存和栈内存的区别
- redis缓存的数据一致性问题,分布式锁是怎么样的
- redis集群的架构是怎么样的
- HashMap是线程安全的吗?ConcurrentHashMap是怎么实现的
- Synchronized锁的实现
- 锁优化是怎么样的,偏向锁是怎么样的
- 采用的是什么垃圾收集器?CMS跟其他老年代垃圾收集器的区别?CMS跟G1的区别
- 动态代理的区别
- Spring Aop的实现
- zookeeper的ZAB协议
- 项目中主要负责的是什么?方案设计大概是怎么样的,比较难的问题以及是怎么解决的
- future.get()是怎么实现的,futureTask的了解
- 服务怎么做高可用,进程是怎么监控的
- 在浏览器上输入一个网址,大概执行过程,链路层,网络层路由器选择
- 操作系统的内存管理
- 细聊了一下项目
- 数据库的索引,存储引擎的一些问题,平常怎么优化
- 缓存的一些基本问题,一致性怎么保证,大概架构
- 服务高可用的实现
- Kafka的大概介绍,可靠性保证,重复消费问题
- 项目难点
- 一致性算法介绍
但是还是得吐槽一下网易的面试结果一般是7到10个工作日才知道,太持久了…。
文章图片
四、字节四面(终获心仪offer) 一面:
- 负责模块的介绍,了解
- 服务怎么做高可用
- 本地缓存时效性
- mysql和redis数据的一致性,怎么保证
- redis集群部署介绍,get key从发起请求到获取值的过程
- redis的内部一致性是怎么实现的,RDB快照的过程,为什么fork进程能够读到快照数据?全量和增量复制的区别
- redis数据结构介绍,hash结构介绍,zset底层实现跳跃表的实现,跳跃表时间复杂度
- 询问项目中的一些细节问题
- 分布式锁原理介绍,释放锁如果不用lua脚本会出现什么问题
- .Mysql主键一般怎么使用?如果使用自增id的话,返回的记录给前端展示,很容易看出项目的大概记录数,有没办法解决?
- 自增id可以怎么生成?雪花算法介绍?容器部署,怎么保证雪花算法里面的work id?分布式id生成器介绍?
- 雪花算法里的时钟回拨问题
- .高性能id生成算法,有什么好的解决方案
- Mysql联合索引介绍
- Mysql索引数据结构?聚簇索引和非聚簇索引的区别?
- Mysql事务隔离级别的介绍?幻读是什么?幻读的解决方案?普通select和加锁select的区别?乐观锁怎么做?
- JVM的了解,介绍一下从new对象到垃圾回收的整个过程
- JVM调优,一般怎么做?具体描述一下内存泄露分析的过程,怎么发现,怎么解决
- 算法题:二叉树的左视图
- 算法题:给出不同服务之间的调用时间,找出链路的最长调用时间(ms)
- (A,B,100) (B,C,200),(A,D,200)
- 最长调用时间为300m3, A 到 B 到 C
- 项目了解
- 分布式事务,缓存,mysql基本知识,jvm调优
- 细聊了一下项目
- 算法股票利润最大化(只交易一次,还有可交易多次leetcode原题)
- 继续聊项目,主要讲自己负责的项目模块,难点之类
- 缓存一致性问题保证
- Kafka消息可靠性保证,出现重复消费,幂等性怎么保证
- 线程模型,处理网络连接、客户端请求的线程的区别
- 【算法|挂了腾讯3面,拿到字节四面offer,谈谈我的大厂面经!】https密钥交换过程,公钥怎么保证是正确可靠的
- 网络的7层模型,每层大概作用是什么?tcp连接后,路由器突然断开了,需要重新连接嘛
- 进程间的通信方式,共享内存的通信方式,给了几个场景问题
- 平常的学习方式,怎么提升技术
- 感觉前面面试的怎么样,之前面试的算法有没其他最优解
- 项目整个系统设计是怎么样的?由哪些模块组成?不同模块之间是怎么串联的?模块的边界问题?怎么权衡?可能存在什么问题,可以怎么优化?
- 针对项目的部分模块进行提问,数据一致性保证?传输的数据有没加密,没加密会出现什么问题?怎么解决
- 工作期间的最大挑战
- 系统稳定性问题,怎么处理
- 平常做业务的模式大概是怎么样的?
- 同事是怎么评价你的?
- 跳槽原因、平常学习方法、爱好、期望薪资等。
五、面试真题笔记(含答案)分享:
面试前和面试阶段,我个人整理总结了不少的“面试真题笔记”,现在分享给即将在金三银四面试的朋友们,希望对你们有所帮助。
有需要的朋友关注我点这里直达即可免费获取 即可免费获取!Java架构面试手册:
文章图片
文章图片
Java面试问题集:(Java基础部分+算法与编程+html&JavaScript&ajax部分+Java web部分+数据库部分+XML部分+流行的框架与新技术+软件工程与设计模式+j2ee部分+EJB部分+webservice部分+其它)
非常全面
文章图片
文章图片
JVM面试专题以及答案:(涵盖JVM所有常见面试题)
文章图片
MySQL面试专题以及答案:
文章图片
Redis面试专题及答案:
文章图片
Spring boot面试专题及答案:
文章图片
Spring cloud面试专题及答案:
文章图片
还有很多就不全做展示的,需要完整版的朋友,关注我点这里直达即可免费获取已经为大家打包好了。
文章图片
文章图片
推荐阅读
- LeetCode|LeetCode剑指 Offer 03. 数组中重复的数字python3 3种解法
- 剑指offer|剑指 Offer 03. 数组中重复的数字(简单)
- 经典程序|数据结构之用栈来解决括号匹配问题(Java实现)
- 动态规划|LeetCode 300.最长递归子序列
- leetcode|LeetCode 94. 二叉树的中序遍历
- 数据结构与算法|4 单循环链表解决约瑟夫问题
- 面试题系列|面试题系列(Kafka 夺命11问,你能扛到第几问())
- C语言|C语言求水仙花数
- C语言|C语言求输入字符的字母和数字个数