前言
浙江某211传统工科硕士(没错就是机械),为了恰饭,去年四月多开始all in Java。研究生阶段除了上课以外基本就是在给导师做事情了,主要就是写一些桌面的控制软件,业余时间还基于这个软件自己扩展做了个Web服务,再加上一个烂大街的秒杀,构成了我简历上的3个项目。从今年二月开始就陆续投了些简历,到目前为止算上意向书,拿了阿里、腾讯、字节、美团四个offer。
面经
附上一些面经以供参考:
阿里CBU技术部一面(38分钟)
- 自我介绍
- 聊聊并发
- 怎么解决并发(乐观锁悲观锁)
- 讲讲乐观锁悲观锁(互斥锁,cas)
- 线程池讲讲
- juc用过啥(countdownlatch,concurenthashmap)
- 垃圾回收讲一下,算法,过程(可达性 gcroot 三个算法)
- 索引原理讲一下(小册结构三连)
- springboot和spring区别
- nio和netty区别?bio呢(我???)
- springcloud有用过吗(没,了解过dubbo)
- dubbo用来干嘛的(???服务调用的)
- 有其他中间件在学习吗
- 成绩排名咋样?研究生期间有没有获奖?
- 这项目干啥的
阿里cbu二面(1小时11分)
- 分配对象内存怎么分的
- 堆讲讲
- 四种引用讲讲
- threadlocal
- http请求流程(没搞懂想问啥,绕了半天)
- 单点登录了解吗
- 系统怎么感知
- 一致性hash了解吗
- 快排说一下
- 平常怎么学习
- 有上线项目吗(装作有)
- 有什么成品吗(没。。)
- 深挖项目,挖哭
- 有了解什么新技术吗
- 有写技术博客吗
- 服务跑得慢怎么排查
- 实际项目里有排查过吗,有印象深的bug吗
- 有什么学习计划吗,在什么阶段达到什么水平
阿里cbu三面(33分)
- 自我介绍
- 自己挑个项目讲讲(balabalabala)
- netty原理
- netty为什么这样设计
- nio多路复用代码口述一下
- 布隆过滤器是啥?原理?项目里怎么用的
- 缓存雪崩怎么解决的?
- 为什么要多级缓存?
- 缓存数据库一致性?怎么解决的?
- 分布式锁怎么实现的
- zookeeper怎么实现分布式锁
- 为啥能保证成功获取
- 数据库索引是什么原理
- 为什么用b+树
- 索引具体是怎么储存的
- 联合索引讲下,怎么储存的
- 线程状态讲一下
- wait和block什么区别
- 幂等性解释一下
- rocketmq事务消息原理,代码实现
- tcp协议介绍下
- 三次握手详细讲
- 为啥是三次
- 滑动窗口原理?具体怎么实现的?
交叉面
- 忘了复盘了,不过不难。。
- hr面就谈笑风生了,实话实说就行,hr都是***湖了,能看出什么时候在装。
美团平台技术一面 1小时
- 自我介绍
- 为啥转行
- 怼项目
- 缓存雪崩有哪几种解决措施
- 为啥用布隆过滤器,优缺点,除了布隆过滤器还有其他什么解决方案
- 为啥要心跳,心跳连接怎么实现的,怎么理解可用性
- 项目难点在哪
- 为啥自定义协议,优点缺点
- java运行时区域,各自功能
- 异常体系,怎么理解的
- jdk源码看过哪些版本,1.7 1.8除了map还有啥印象深刻的地方
- 红黑树优缺点,为啥不用平衡树,jdk还有哪里用到了红黑树
- 递归运行到多少层会stackoverflow???
- 对象的内存分配策略
- 编程题,遍历一遍得到a+b=m的所有组合
- 提问
美团二面(50分钟)
- 自我介绍
- 自己优势体现在哪里,举例说明下
- 学过哪些计算机课程
- 讲讲操作系统,如果自己设计,涉及哪些部分
- 进程线程区别
- 线程同步方式
- 内存管理,为啥要虚拟内存
- 操作系统有内存大小限制吗,64位支持多少内存)=
- java多线程了解一下
- 重排序出现的场景
- volatile怎么禁止重排序的
- syn和lock,syn底层实现原理
- 兴趣爱好,有没有关注什么开源项目,博客网址发一下
- 算法:n种颜色,m个球,球的排列顺序固定,求最短的包含所有颜色的子数组左右索引,要是考虑首尾相连呢?
- 反问
腾讯 wxg 一小时(挂)
-
六道算法 40分钟
-
洗牌算法:对52张牌洗牌,要求尽量洗乱,而且原牌不能在原位置上重复
-
现在有n个微信群,每个群里面有2到m个人,设计一个数据结构存储这些信息,要求该结构能快速找出每一个人所在的所有的群Id。
-
数组a[N],存放了数字1至N-1,其中某个数字重复一次。写一个函数,找出被重复的数字。时间复杂度必须为O(N), 空间复杂度不能是O[N]。
-
现在有一个微信群,里面有n个人,每个人的id用整数int标示,现在要求找出id是对称数字的人出来,如3, 121, 12321。 请实现改查找函数,不能把整数转为字符串来判断。
-
给定一个字符串,如“1234”,请实现一个函数,把这个字符串转成10进制整型,不能用系统函数
-
有一个二叉树,每个节点的值是一个整数。写一个函数,判断这棵树中是否存在从根到叶子节点的一个路径,这个路径上所有节点之和为某一个值。存在返回1, 否则返回0。
-
讲讲设计模式,单例,工厂
-
java多态讲讲,底层如何实现的
-
mysql索引原理,为啥不用其他数据结构
-
自定义的协议,如何校验
-
说说java从写代码到编译到运行,cpu 内存 硬盘干了什么事???
字节跳动一面(1小时)
- 自我介绍
- sql(有点简单,忘了)
- 算法:逆波兰表达式(给四则运算,求逆波兰表达式)
- 说说你最近在学什么(答raft zab)
- 那你就讲讲raft吧,选举,宕机,一致性写……
- 令牌桶算法说一下,怎么实现的
- 缓存穿透,缓存击穿、缓存雪崩
- 消息队列怎么保证可靠性投递
- 怎么保证消息队列高可用,主从复制怎么实现
- 数据库索引了解吗,怎么实现的
- 事务隔离级别有哪些,解决了什么
- Java垃圾回收讲一下
- G1和CMS讲一下,流程,什么时候stw
- 反问
字节跳动二面(1小时)
- 自我介绍
- 了解了下学习情况,学了哪些
- sql,需要用到自连接。。没写好
- 算法:下一个排列(lc原题,直接搜名字)秒了
- TCP/IP几层,三次握手,四次挥手讲讲
- TCP为什么可靠
- TCP超时重传怎么个流程,重传时间怎么计算的
- close-wait讲讲,如果发现服务器有大量close-wait,你觉得可能的原因是什么(没讲好)
- TCP每个数据包大小怎么决定的,怎么计算的(没讲好,就说了个网络越好,数据包越大。。)
- 那你讲讲TCP拥塞控制吧
- 微服务有在学习吗,流量怎么控制,状态机了解吗
- 分布式一致性算法了解吗,讲讲ZAB,如果三个节点,主节点宕机了怎么办,怎么保证数据一致性
- 设计模式有了解吗,讲讲你熟悉的(策略、工厂、反应堆……)
- 操作系统进程调度算法
- 数据库索引原理,具体在数据页中数据怎么存放的
- 为什么要用自增id主键,如果用业务列比如手机号有什么问题
- 反问
字节跳动三面(1小时)
- 自我介绍
- 给面试官讲了讲3D打印(笑)
- 挖项目
- linux指令(wget scp awk netstat top等等)
- 领域驱动设计了解吗
- 看过的源码(JDK,Netty)
- 说说Netty中你印象深刻的源码
- sql:a表两列aid bid, b表bid,bid外键,查出b表中不存在于a中的bid,墨迹了会做出来了
- 算法:田忌赛马,口述思路
- 项目中用到的设计模式,你怎么理解的
- 问了问实习时间
- 反问
字节跳动hr面(半小时)
- 谈笑风生
总结
最后我为大家准备了ava核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!有需要的朋友点这里备注csdn自行下载
作为开发人员来说,不说要求自己成为业内顶尖,但也要保证自己不被市场所淘汰,学习对于程序员来说是最基本的事情。