2021 最新分享字节四面成功拿 Offer!
字节跳动一面:
自我介绍
tcp 和 udp 区别,应用场景
tcp 三次握手,为什么有第三次?
讲一下 get 和 post 区别,其他命令
讲一下进程和线程区别,什么时候用多线程?怎么保证线程安全?
synchronized 的使用,是对什么加锁?
栈和队列,怎么用栈实现队列?
垃圾回收算法,复制算法中存活对象太多怎么办?
可达性分析,GC Root 可以是哪些对象?
hashmap 底层实现,put get 过程,扩容,为什么容量为 2 的倍数?
java 基本类型,基本类型间的转换(short+int 得到 int 类型,不能直接把 int 型赋给 short 型)
String 类,字符串相加+的底层操作,StringBuilder 和 StringBuffer
算法:给一个数组,使数组奇数在前半段,偶数在后半段,在原数组上操作。
字节跳动二面:
多个项目的技术架构,不是业务架构 MySQL,Redis,Nginx,Kafka 这些技术架构
项目技术点,学到了哪些?也要具体知识点。
MySQL 中为什么是最左前缀?
有没有接触过一些自动熔断工具
502 可能的原因有哪些?
线上问题怎么排查?Full GC 频繁怎么办?
服务的 QPS,数据库的架构和版本。
SpringBoot 的优缺点分析
SpringBoot 的启动源码分析
服务的部署方式?
算法题目:按照之字形分层遍历二叉树,要求 bug free,并且构造二叉树进行测试。
字节跳动三面:
jdk8 默认的垃圾回收器, 知道哪些垃圾回收器? G1 详细说一下
synchronized 关键字的底层是什么?
线程之间哪些资源是共享的? 什么是独享的?
堆和栈有什么区别?
linux 查看资源的命令?怎么样查看哪些端口被占用了
linux 内存中 swap 是什么? 什么用?
用户态和内核态的区别? 为什么要有用户态内核态区别?
中断有哪些类型,区别?
死锁概念?条件?
算法题:奇数位递增偶数位递减的数组,排序
get,post 区别?
get 可以缓存?在 INTP(?没听懂在哪)里是怎么实现的?
写 sql,group by 的查询?
mySQL 的搜索引擎?innodb 和 myISAM 的区别
HRBP 面:
自我介绍
为什么在看机会呢?在看什么类型的机会呢?
为什么看头条的机会?
你觉得头条是一家什么样的公司?
朋友同事如何评价你?
平时都有哪些兴趣爱好呢?
在原公司最享受的阶段是什么时候?为什么
你对我们的业务 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 方向了解吗?
你对我们的业务方向和技术感兴趣吗?
吸收经验,参考总结,制定计划,实施行动
===================
所谓的列出计划,实际上就是在我们的学习方式上,要有一个明确的目标和步骤,不管你是学习什么类型的,都要有一套自己的学习计划,否则很容易出现“漫无目的”的情况。
那么一个计划应该怎么制定呢?以下就是我制定计划的一个步骤:
Step1:时间规划
首先第一步就是要有属于自己的一个时间规划,所谓的时间规划实际上就是时间管理,比如你要学习某一个技术栈时,规定一个时间段,要求自己完成。
附上我之前的一个时间规划表:
Step2:列出要学习的知识点
列出要学习的知识点,首先要列出学习的技术栈,然后关于这个技术栈我们要学习到哪些知识点,比如要学习 Redis,那么除了 Redis 基础部分以外,那就需要了解缓存、持久化机制、雪崩、穿透等。再高级一点的技巧,就包括 BloomFilter,RedisSearch,Redis-ML 了。
Java 核心知识点:
Step3:画脑图(Xmind)
我们在学习的过程中,要学习如何去画脑图,这个是我一直以来保持的习惯,因为清晰的结构图对我们的思维是能够起到梳理作用的,能够清晰的了解,如何学习?如何学好?学到什么程度?
以 Redis 脑图为例:
评论