3年经验硬抗字节Java岗,25天4轮面试终拿意向书,复述原题及经验
这次面试字节跳动也是做了很多的准备,还好顺利拿到了offer,特分享一下这次的4面技术面真题,以及一份字节2-2师兄整理的面试手册,希望能够给一些正在面试字节或计划面试大厂的朋友提供帮助。
字节跳动技术一面
- 讲一下线程参数的含义
- Innodb的索引实现
- 为什么是B+树?
- Redis的使用,分布式锁的实现
- 操作系统虚拟内存换页的过程
- TCP三次握手
- volatile关键字的作用
- 乐观锁、悲观锁
- 之前用过哪些设计模式?
- 算法题:滑动窗口
字节跳动技术二面
- 说一下B树和B+树的区别
- 说一下HashMap的实现,扩容机制,扩容时如何保证可操作?
- Redis扩容机制(渐进式单线程扩容)
- Spring IoC的原理,如何实现,如何解决循环依赖?
- 两线程对变量i进行加1操作,结果如何?为什么?怎么解决?
- CAS概念、原子类实现原理
- synchronize底层实现,如何实现Lock?
- AQS有什么特点?
- 手写项目中某个模块代码。
- 介绍各种网络协议。
- DNS在网络层用哪个协议,为什么。
- 介绍HTTPS协议,详述SSL建立连接过程。
- 代码题:反转单链表。
- 代码题:复杂链表复制。
字节跳动技术三面
- 算法题多到爆炸,感觉是算法专场,宇宙条果真名不虚传
- 说一下Java垃圾回收机制
- 64匹马,8个赛道,找最快的4匹马
- 给出两个升序数组A、B和长度m、n,求第k个大的
- 给出数组A,长度为n,数组中元素的值位于[0, n - 1]之间,求是否有重复元素
- 讲一下多线程与多进程区别
- JVM中什么时候会进行垃圾回收?什么样的对象是可以回收的?
- Spring主要思想是什么?
字节跳动技术四面
- 场景题目:设计一个短域名服务:短信存不了太长网站,需要弄成短域名,你该如何设计一个服务,可以为全国的网址服务。
- TCP为什么是三次握手四次挥手?
- 数据库的隔离级别
- sql题,写了个连表查询外加模糊查询
- 算法:镜像二叉树 ......
4月11号邮件收到信息,HR直接给了意向书,查收然后确认好了,确定了入职时间。
总的来说,自己如果有想要去的大公司,一定要提升好自己,让自己的能力和素质与公司匹配的上,我也一直相信,机会永远是留给有准备的人。下面这套字节2-2师兄整理的面试手册,分享给大家!每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图吧。如果你也有需要可点击这直接来这获取!
Java
基础
Java 集合框架
jvm
多线程
网络
算法和数据结构
设计模式
常见框架
Spring
Netty
权限认证
微服务/分布式
消息队列
分布式 ID 其他(网关、限流...)
数据库
MySQL
Redis
经验总结
这是我在工作、面试中学习并总结到的一些知识点,都是一些比较典型的、面试常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。
有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。所谓“温故而知新”,没事的时候多翻看一下这些知识,没准就会有新的收获。你没时间整理的东西,我都帮你写好了。