前言

其实鄙人不善言辞,这个面经也是随性发挥,想到啥说些啥,更多是对自己开发历程的一些感受和自己学习的方法。不过,最后我想表达的是,在开发过程中每一行代码,每一种设计模式的使用,思考的重点和角度都会有所不同。所以,能够尝试不同的技术栈,从不同的视角来思考并解决问题,融会贯通,才是我个人追求的技术之“道”。
以下内容中,我谈及到的学习方法、学习面试资料,均可以免费分享给大家,希望大家在今年的金九银十里能够发挥顺利,进到自己想进的公司,共勉!

 


另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中)

资料获取方式:转发和评论这篇文章,然后关注小编,点击传送门即可打包带走所有资料~

 

58 一面 40min 挂

  • 自我介绍
  • 离职原因?为什么这个时候离职?
  • http1.1 http1.0 http2.0 区别
  • redis长度过长怎么优化?哪个api,数据量超过多少效率会变低?
  • MySQL做过哪些优化?覆盖索引?limit两个参数区别?MySQL分页优化的其他方法
  • concurrenthashmap如何保证线程安全,说说你的理解
  • arraylist linkedlist 使用场景
  • 本地线程和守护线程的区别,Thread.setDemon();
  • 线程状态
  • 线程池参数?线程池为什么用new的不好?
  • 项目:前台如何调后台接口?rpc?主服务项目多大
  • 有什么问我的?
  • 目前薪资 期望薪资?
  • 鼓励

字节跳动 一面 78min 过

  • 自我介绍
  • 你对全栈的理解
  • 离职原因,为什么这个时间离职
  • 技术上没有学到东西吗?
  • 哪块儿比较熟?
  • synchronized?mute lock怎么实现的
  • Java看过哪些源码?线程池好处?多创线程就怎么了?压测的时候创建几千个线程才几毫秒这点儿开销有必要节省吗?内存开销,时间开销?线程池参数,execute执行流程,work?没有工作会删除吗?睡眠状态?idl怎么配置的?最大线程满了之后?
    有哪些Map?还有啥Map?用的jdk几?说一下HashMap数据结构,put值散列冲突怎么解决?链表树化转移数量?为什么是8为什么是6??为什么数组要是二次幂?怎么扩容的?扩容rehash的流程?
  • concurrentHashMap的散列流程?concurrentHashMap怎么实现的线程安全?CAS什么意思,怎么实现的?Unsafe怎么实现?concurrentHashMap什么时候用到CAS?并发情况下两个线程都到之后怎么插入的?初始化的时候两个线程都检测到需要初始化了,然后怎么做的?
  • 算法题 coins硬币 / 一句都没写出来,做了20min白卷交的,(我:该用动态规划做,但不知道怎么下手了,面试官:转移方程怎么写?我:对不起,忘记了)
  • 怎么学习的?
  • 最常看的博客?网站?
  • 有什么好书?技术和非技术都行
  • 怎么看待学习和看书?
  • 你有什么问我的?
  • 我进入您的部门哪方面需要提高?
  • 大概什么时候出结果?

字节跳动 二面 30min 没算法题 挂

  • 「忘记录音了,只记得这些了」
  • 自我介绍
  • 为什么离职?
  • 你觉得自己有什么可以拿出来讲的点吗?
  • 你做的主要工作有什么?最复杂的一个业务讲一下流程?
  • 并发度提100倍有哪些优化的点?
  • 限流怎么做的?令牌桶的算法实现?限流还有哪些方式?
  • 接口450ms 优化到了 360 ms怎么优化的?
  • tomcat只是修改了一下参数吗?
  • redis集群部署方式?主从和哨兵的区别?
  • 缓存方式还有哪些?
  • redis数据结构,string底层实现,跳表复杂度?
  • redis使用过程中出现过变慢的情况吗?
  • nginx后面的形态是怎么样的?
  • 网关层还了解什么技术?
  • 对自己的定位,技术发展?
  • 别人对你的评价?
  • 你有什么问我的?

流利说 一面 40min 过

  • 自我介绍,项目 20 min,
  • 单点故障怎么解决?添加节点自动化还是手动?提升系统负载能力怎么测的??
  • http 1.0 1.1区别?
  • 并发并行区别?
  • 并发数达到了400多怎么做的优化?
  • 缓存穿透?其他请求如何知道值已经到缓存中了?
  • 锁怎么做的?分布式锁怎么做的?放过去的请求失败或者延迟大量请求阻塞在那里怎么办?
  • 日志记录模块讲一下?日志统一记录?
  • 可用性怎么保证的?报警怎么实现的?报警的指标只是健康检查?
  • 服务之间的相互调用有涉及到吗?分布式链路追踪如果某个服务调用出问题了,怎么排查问题?
  • https协议目标源是静态文件,按回车整个请求链路?http静态文件和接口请求的区别?对CDN有了解吗?https加密是对称还是非对称?
  • SQL调优你会怎么做?索引的数据结构?MYSQL的事务有哪些?比较常用的是哪些?
  • 常用的Linux命令一直说,直接说命令的名字
  • Java转golang怎么看?
  • 你想问我?
  • 14号线下进行后续3轮面试。「已拒」

百度 一面 50min 过

  • 自我介绍
  • 关键SQL优化怎么优化的?为什么性能不好?主键必须有吗?数据索引密集度很差的话,你的优化意义不大吧?
  • MySQL有哪几种索引?聚簇索引和辅助索引的区别?索引数据结构?为什么用B+树?
  • MVCC?版本号怎么变化的?更新的数据的时候怎么确定版本的?幻读怎么解决的?
  • 一个SQL怎么走的索引?MYSQL会怎么选的?MySQL哪些不正规的写法无法命中索引?
  • MySQL有哪几种日志?redo log主要有什么用?提交之后100%落盘吗?为什么MySQL要写到redo log buff内存?
  • redis一般怎么用的?为什么选择用redis?为什么redis快呢?
  • redis几种数据类型?redis string的底层实现?
  • 分布式锁用过吗?说说怎么用的?用的哪个命令?
  • redis 底层 hash 表扩容机制说一下?
  • 类加载过程?常用的类加载器?调用顺序?为啥双亲委派?
  • mq重复消费,丢消息的问题怎么解决?redis的list有哪几种操作?布隆过滤器特点?缓存穿透?
  • static关键字的用法?
  • 用到的数据结构那些?Map put的流程讲下
  • kafka,zookeeper了解吗?
  • ThreadLocal用过吗?不remove掉会有什么问题?
  • 口述算法:之字打印。
  • 有什么问题?

百度二面 68min 过

  • 自我介绍
  • 哪个项目时间长一些,两个项目技术栈都讲一下,详细介绍一下***项目具体做了哪些事情,一些查询维度的接口?如果现在让你开发一些接口,你怎么做接口隔离。表的数量?表数据量?
  • SQL优化介绍一下做了哪些?怎么替换?
  • 限流怎么做的?解释一下
  • 介绍一下另一个平台。按刚才的介绍方式。
  • redis解决客户端session共享信息怎么解决的。
  • redis分布式锁解决了什么问题?
  • redis为什么能支持分布式锁?使用方式有哪些?
  • MQ用在业务场景?MQ本身的优势是什么?一般什么情况下可以使用这个技术?核心本质原因是什么呢?开线程做不就可以了区别是什么?
  • zk,kafka
  • 你们的总线讲一下?
  • Spring循环依赖怎么解决?
  • 让你写一下堆栈溢出你怎么写?为什么往集合设置那么多元素没有被GC?
  • 介绍一下Java的锁?
  • 你看这些源码自己的理解是什么?介绍了线程池execute,submit中适配的思想
  • 你有什么问我的?10min

百度3面 36min 过

  • 自我介绍
  • 写博客原因?
  • 离职原因?
  • 为什么裸辞?
  • 还有哪些再看的机会?
  • 长期规划?
  • 你最大的优势?
  • 你怎么学习一个技术?
  • 你如何实现一个短期目标?
  • 还有什么问我的?
  • 「流程快到没朋友」,三面完半小时发来了测评,三面完一个小时发来了材料准备的邮件。

搜狐 1 面 64min 过

  • 自我介绍
  • 有其他offer吗?
  • tcp三次握手,四次挥手为什么是4次?
  • http1.0 1.1 2.0?
  • redis 分布式锁的实现方式?
  • redis 数据结构有哪些,zset 底层数据结构是什么,讲一下?
  • == equals区别,如果hashcode相等代表equals相等吗?
  • hashmap底层实现方式『tableSizeFor,hash』?
  • 1.8相比1.7为什么头插变尾插?
  • 线程安全的map有哪些?为什么用concurrenthashmap?底层实现是什么?
  • 什么时候变成红黑树?双哈希表?「这些其实讲到了源码层面,initTable,resize,tryPresize,Thread.yield,ForwardingNode。」
  • volatile讲一下,MESI?
  • Spring IOC,AOP你的理解讲一下?
  • Spring注入方式知道哪些?
  • bean是线程安全的吗?
  • 缓存穿透,雪崩,击穿讲下你的理解。雪崩问题的解决方案?
  • 实际场景提:活动页面,对于该页面数据有些用户本身没有缓存,有些用户有对应缓存。参加活动了的用户才有缓存,来了大量请求如何确保用户的请求正常返回。
  • Innodb,memory区别?聚簇索引,非聚簇索引区别?B树,B+树区别?innodb还有什么索引?回表操作再走一遍主表吗?什么情况下不走?
  • 4种事务隔离级别和分别的问题?
  • Linux命令用的多吗?awk用过吗?
  • SQl调优你怎么做的?
  • Java垃圾收集器知道哪些?高并发情况下用哪个?
  • 算法:二叉树中序遍历,递归非递归实现
  • 写一下单例模式
  • 有什么问我的?
  • 哪里需要提高?
  • 框架仅停留在使用层面-14,15,16题
  • 业务上思考的少-16题
  • 部门技术栈?
  • 部门所做业务?
  • 后续面试流程?-1年多经验两轮技术面。

总结

最后我为大家准备了Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。作为开发人员来说,不说要求自己成为业内顶尖,但也要保证自己不被市场所淘汰,学习对于程序员来说是最基本的事情。

资料获取方式:转发和评论这篇文章,然后关注小编后点击传送门即可打包带走所有资料~