上岸字节跳动,回馈牛客
面经分享:
字节跳动
一面
二叉树最长路径(代码)
爬虫生成的8G的URL文件,只有1G的内存,如何查找出重复的URL
MySQL的隔离级别
讲讲可重复读隔离级别
流量控制和拥塞控制
三次握手和四次挥手
讲讲你理解的分布式系统 讲到了分布式锁
分布式锁redis和zookeeper实现区别,使用场景
索引底层实现结构
B+树的好处
B+树和B树的区别
二面
讲讲你所理解的Java面向对象
讲一下GC
讲一下Java的数据结构
讲一下ConcurrentHashmap
将www.toutiao.com反转成com.toutiao.www(代码)
洗牌算法(代码)
项目相关,压测情况,如何继续优化
三面
合并N个有序数组,每个数组的长度为M,合并为N*M的有序数组,时间复杂度要求最低
逻辑题:想象一个地球表面,飞机可以从机场正着飞,也可以逆着飞,每个飞机的油最多能飞半圈,飞机之间可以互相加油,每一个飞机都要求飞回机场,要出动多少台飞机才可以保证一台飞机飞行完一圈
Innodb和myisam的区别
联合索引的最左匹配原则
项目相关
四面
全程问简历上的项目相关内容,会问一些根据项目延申出的场景题,包括如何做改进
流程:由于三面没过,给加了一轮面试,最后通过
滴滴出行
一面
项目相关
消息队列消费积压如何解决
dubbo服务导出,服务引入
zookeeper作用
四则运算(提示使用栈) 讲一下思路
LRU算法
TCP拥塞控制
二面
项目相关
根据项目延申的场景题:设计任务调度系统,确保每个服务器处理的任务数量均衡
如何做分布式锁
如何做到抗高并发
四则运算,和一面一样的问题,讲了思路
找到出现次数大于一半的数字代码(代码)
三面
学的好的课程有哪些?说了数据库
Mysql和Redis的区别
数据库Mysql的架构
缓存Redis的底层结构
讲一下B+树性质
判断链表是否有环?刚讲快慢指针,要求只能用一个指针
进程和线程的区别?不要背书上概念,有实现过吗
一个线程修改值,另外一个线程能看到修改吗
Redis的数据结构
Redis的set的底层实现
反射讲一下,写一个反射的例子
TCP层和IP层讲一下区别
有在Linux下编程吗
分布式锁怎么做的
zookeeper底层如何去只让一个客户端成功创建临时节点
redis持久化,aof持久化怎么写入的
redis集群的实现
一致性哈希
判断树状结构有没有环(代码实现)
流程:三面没过
一面
内存泄漏
程序退出去之后内存还会泄漏吗?
虚拟地址内存空间
map的底层结构
面向对象的特性讲下?项目中哪里用到了?
观察者模式讲一下
Linux命令了解哪些?有在上面编程过吗?
多线程如何控制同步的
如何让指针指向链表中间
一致性hash算法
IO多路复用模型和Socket
TCP如何保证可靠传输
Mysql的存储引擎讲一下
Mysql搭建集群,主机宕机之后怎么办
Nginx的负载均衡算法有哪些
项目相关
实习中用git开发的流程是怎么样的
流程:一面通过,没有二面流程直接结束。八月底才投的,提前批截止日才进行的一面,感觉是投晚了。
阿里巴巴
一面
项目相关介绍,难点在哪?
如何做接口限流和防止超卖
对数据库压力很大怎么解决?说了redis库存预加载和本地内存标记,问还有没有其他方案
redis扛不住的话有哪些解决方案?说了主从同步,但面试官说这对这样对数据一致性要求比较高
对rabbitmq了解哪些?
rabbitmq消息队列如何解决消息丢失
rabbitmq和其他消息队列的对比
对多线程了解吗?
JUC包下面了解哪些?讲了ConcurrentHashMap
atomic下的原子类有用到吗?采用了CAS
CAS算法在哪里有应用?扯了一下乐观锁和悲观锁
讲一下乐观锁和悲观锁
讲一下ConcurrentHashMap
Redis有哪些数据结构,底层实现是怎么样的?hash底层,zset底层?
说了忘记hash底层,问设计一个hash底层如何设计
操作系统的IO模型有哪些
中间件使用哪些IO模型
看你github上面有Leetcode仓库,讲一下动态规划
平时怎么学习的,平时看哪些书
对Zookeeper了解哪些?
Zookeeper如何做分布式锁
代码面
贴一段项目中你认为写得好的代码,讲一下
接口限流的方式有哪些
写一个堆排序
二面
介绍一下项目,一直问一直问,问的很细。
redis的setbit实现是怎么样的?
rabbitmq能避免发送重复数据吗?不清楚,说不可靠
rabbitmq的可靠性如何保证
自增批次号是怎么生成的?
redis的set的底层结构
redis的zset的底层结构,跳跃表结构怎么做到有序性的?
hashmap的结构
讲一下spring的作用是什么?讲了ioc
讲一下ioc容器的启动过程
只给先序和后序遍历能确定唯一的树结构吗?不能,举个例子说明
概率题,第一堆水果(橘子:苹果=5:5),第二堆水果(橘子:苹果=3:7),拿出一个苹果,为第一堆的概率? 我说要明确第一堆和第二堆数量的比值才能确定
三面
讲一下你比较得意的项目,项目接连被问倒了。。。很尴尬
Java基本类型有多少种
线程池的工作原理,核心线程数和最大线程数什么时候用到
Java中的锁如何实现的
分解数字,变成质因数相乘,比如12分成2*2*3(代码实现)
还有一些面经当时面完没有记录下来...
资料分享:
知识点总结的博客:
推荐书籍(只是我看过的一些觉得比较好的,当然不仅仅这些):
深入理解Java虚拟机
Java并发编程的艺术
Redis设计与实现
MySQL技术内幕InnoDB存储引擎
大型网站技术架构核心原理与案例分析
算法:
剑指offer的题目
牛客网左神的算法视频
某课网liuyubobobo的算法视频
LeetCode算法题(分享我的Github地址:https://github.com/professorxin/LeetCode,包含了大部分LeetCode的top100的题目和CyC大佬博客的LeetCode题解)
感受:
整个找工作的过程来说还是有点痛苦的,笔试做了挺多没有通过,有时候又很容易被打击到怀疑自己。但是我已经很满意现在的结果了,字节跳动也是我很想进的公司。回想起来不管是春招找实习还是秋招找工作,其实自己的确有很多方面做的不好,也暴露了自己一直存在的一些问题,自律性、专注度、主动学习能力等等还是有所欠缺,有时会太浮躁,这些我以后也会不断去改进的。一起加油吧。
#字节跳动##滴滴##腾讯##阿里巴巴##校招##Java工程师##面经#