前言
话不多说,但先介绍一下本人还是要的,末流 985 大学本科,自动化方面业余,自学 Java 和后端。
听敌人说字节往年后端投递的人十分多,竞争比拟大,我本科不是 CS,也只是做翻新创业项目的时候接触过 Java 后端,起初看到有说客户端 0 教训的,就让他人帮忙内推了一下,没想到四面过了!!!哈哈哈
分享一下我的面试流程:
一面(45min 左右):
- 自我介绍。(我就说了下本人的经验和我的项目)
- 问了一下平时怎么学 Java 的,做的我的项目有没有和 Java 无关的。
- 过程和线程的区别。
- http 申请三次握手,四次挥手。为什么是四次挥手。
- https 的工作原理和流程。
- 罕用的网络状态码有哪些,50x 是什么类型的谬误。
- Java ThreadLocal 的源码,举个理论的利用场景。
- java 内存透露的问题,非动态外部类为什么能够拜访到外部类的成员。
- 算法题:青蛙跳台阶,有多少种跳法。(起初问了一下我怎么去思考这个算法的,边界条件怎么设计的等
等)
留神:这次面试过程比拟长,内容繁多,在文章中我基本上简述了,文章里的面试题完整版和我集体的总结办法教训(面试学习和刷题笔记),都整顿有 PDF 完整版,有须要的能够关注我的公众号 前程有光 收费分享给你。
二面(60min):
- 自我介绍(为什么又让我介绍???可能是不同的面试官吧)
- 数据结构和操作系统方面平时有没有学习,感觉本人学的如何。(说是自学的,上了学校的一些课程)
- HashMap 的实现原理,Java 1.8 前后的次要区别是什么。
- hashCode()和 equles()办法有什么关系,为什么重写了前者必须要重写后者。不重写会有什么问题。
- Java 内存模型,内存共享等系列问题。(我认为是问办法区、堆、栈等这种内存划分,后果是指的内存共享方面的问题,面试官等我答完了才跟我说答错了,领导我答复正确的答案)
- 线程锁的问题,synchronized 关键字,造成死锁的条件是什么。
- 算法题 1:让我写几种生产消费者模型。(我写了三种实现)
- 算法题 2:版本号的比照,比方:1.7.93 和 1.8.1 这种。
感觉二面官非常重视 Java 根底,而且问的问题也是由浅入深的,依据你的答复状况来抉择下一个问题。
三面(60min):
- Java 类加载的流程,双亲委派机制是什么,它是为了解决什么问题。
- Java GC 回收的原理,新生代老年代划分机制。
- Java 设计模式学的怎么样,动态代理和动静代理的区别,各有什么劣势。
- 手撕三种 Java 单例的写法。最优的写法是什么,为什么?(这道题答得不是很好)
- 给定一个长度为 n 的钢条,以及一个价格表 p,p 中列出了每英寸钢条的价格,将长度为 n 的钢条切割为若干短钢条发售,求一个钢条的切割计划,使得收益最大,切割工序没有老本。(《算法导论》上规范的动静布局例题。)算是运气比拟好吧,面试官也没有在算法上特意刁难,问了一道典型的动静布局问题。
感觉三面官是所有面试官里最庄重的,问的问题也更重视根底,思考的更深刻。
四面(HR):
HR 面大略就是问了一下本人的职业倒退方向啊,将来有什么打算啊
面试经验总结
置信大家都很好奇,我是非科班出世,又是前面自学的 java 后端,是怎么一步步从外包走到字节跳动的呢?
留神:下文次要是我集体的总结办法教训(面试学习和刷题笔记),都整顿有 PDF 完整版,有须要的能够关注我的公众号 前程有光 收费分享给你。
1. 本人布局好路线图,学会查漏补缺
把本人的知识点梳理好,根本问题不大
- 并发编程:多线程,高并发,CAS,锁,容器,线程池底层
- 性能调优:Mysql,IO 及网络调优,算法调优,JVM
- Spring 全家桶:Spring,SpringMVC,MyBatis,IOC,AOP
- 缓存数据库:Redis,mongoDB,MySQL
- 分布式 & 微服务:SpringBoot,SpringCloud,docker,maven
2. 依据本人布局的路线图,找出本身有余
JMM 内存模型
- 古代计算机模型基础理论常识
- 什么是线程 深刻了解 Java 线程
- JMM Volatile 缓存一致性协定
- 指令重排、可见性、原子性、程序一致性、happens-beofre 详解 as-if-serial
Mysql 性能调优
- Mysql 索引数据结构深度解说
- B+ 树
- Hash
- 红黑树
- Mysql 执行打算与索引解说
- explain 工具深度应用
- 索引优化最佳实际
Zookeeper
- Zookeeper 疾速入门
- Zookeeper 多节点集群部署实战
- Zookeeper 典型利用场景实战
- 服务注册与订阅
- 分布式配置核心
- 分布式锁
- Zookeeper 中 znode、watcher、ACL、客户端 API 详解
- Zookeeper 客户端服务端源码分析
- Zookeeper 迁徙、扩容、监控详解
Dubbo
- Dubbo 企业级利用实际
- Dubbo 调用模块详解
- Dubbo 容错机制与高扩展性剖析
- Dubbo RPC 协定底层原理与实现
- Dubbo 设计原理剖析与源码详解
- Dubbo 负载平衡策略剖析
- Dubbo 管控后盾治理与部署详解
Redis
- Redis 外围数据结构分析
- Redis 在微博,微信及电商场景典型利用实际
- Redis 长久化机制与平安机制详解
- Redis 主从及哨兵架构详解
- Redis Cluster 集群架构实战及原理分析
- 集群数据分片算法及动静程度扩容详解
- Jedis、Redisson 客户端源码分析
- Redis 高并发分布式锁实战
- Redis 缓存穿透,缓存生效,缓存雪崩实战解析
- Redis 布隆过滤器实现
- Redis 缓存设计与性能优化
这份面试文档当然不止这些内容,实际上像 Spring Cloud、设计模式、Netty、分布式、数据结构等其余局部的面试内容均有波及,因为文章篇幅,就不全副在这里论述了,须要的能够关注我的公众号 前程有光 收费下载完整版。
写在最初的话
对于大厂面试,我最初想要强调的一点就是心态真的很重要,是决定你在面试过程中施展的要害,若不能失常施展,很可能就因为一个小失误与 offer 失之交臂,所以肯定要器重起来。另外揭示一点,充沛温习,是打消你缓和的心理状态的要害,但你温习充沛了,天然面试过程中就要有底气得多。
再揭示一下,如果你想要学习,却无奈于没有干货学习材料,以上所有的材料内容都能够收费分享给你,关注我的公众号 前程有光 以上所有材料一次性打包带走!