这是一位读者的 2022 字节跳动 Java 后端实习面经,已经拿到了 offer。字节虽然用 Go 居多,但也是有挺多 Java 岗位的招聘。
字节跳动招聘官网
我对他在面试遇到的问题进行了整理并给出了详细的参考答案,希望对准备面试的小伙伴有帮助!另外,建议准备面试的小伙伴一定要多看一些面经,根据自己的简历多多自测,这对于面试非常有帮助!
末流 211,软件工程专业,2023 届毕业生。本来没抱多大希望,没想到最后过了。
ReentrantLock
源码。ThreadLocal
理解、原理、内存泄露问题。参考答案 (根据面试问题的顺序排序,部分微信外链无法直接打开,建议文末阅读原文) :
TIME-WAIT
和 CLOSE-WAIT
是干什么的?为什么要三次握手两次不行吗?有大量连接处于 TIME-WAIT
的原因?TCP 是长连接还是短连接?参考答案 (根据面试问题的顺序排序,部分微信外链无法直接打开,建议文末阅读原文) :
这一面问的技术问题变少了很多,更多的是和面试官交流技术思维。
参考答案 (根据面试问题的顺序排序,部分微信外链无法直接打开,建议文末阅读原文) :
随便聊了一下。
字节的面试难度还是比较大的,不过,效率很高,体验也很不错。几个面试官给我的感觉还是不错的,一看就是做技术的,不整一些虚头巴脑的东西。
面试之前,我一直对照着 JavaGuide 网站(地址:javaguide.cn)和 《Java 面试指北》复习知识点,准备对应的八股文。Java 后端的知识点比较多,我主要是根据自己的简历来进行针对性地复习。面试的时候,不出意外,面试官问的几乎都是简历上写的东西。
[1]
Leetcode 199. 二叉树的右视图: https://leetcode.cn/problems/binary-tree-right-side-view
[2]
Redis 5 种基础数据结构总结: https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247526650&idx=1&sn=15042ffbe9ef97cccafbe9e4c2de5dad&chksm=cea12731f9d6ae276dee602e769b491e8979068c3f633ba95ea0338cd34dfc613941522e56f2&token=973133388&lang=zh_CN#rd
[3]
Java 线程池详解: https://javaguide.cn/java/concurrent/java-thread-pool-summary.html
[4]
面试题 -- 如何设计一个线程池: https://segmentfault.com/a/1190000040631931
[5]
JMM(Java 内存模型)详解: https://javaguide.cn/java/concurrent/jmm.html
[6]
AQS 详解: https://javaguide.cn/java/concurrent/aqs.html#aqs-%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D
[7]
Java 并发常见面试题总结(上): https://javaguide.cn/java/concurrent/java-concurrent-questions-01.html
[8]
Java 并发常见面试题总结(中): https://javaguide.cn/java/concurrent/java-concurrent-questions-02.html
[9]
ReentrantLock源码详细解读: https://zhuanlan.zhihu.com/p/65727594
[10]
HTTP vs HTTPS(应用层): https://javaguide.cn/cs-basics/network/http&https.html
[11]
Leetcode 32. 最长有效括号: https://leetcode-cn.com/problems/longest-valid-parentheses/
[12]
Leetcode 110. 平衡二叉树: https://leetcode.cn/problems/balanced-binary-tree/
[13]
HTTP vs HTTPS(应用层): https://javaguide.cn/cs-basics/network/http&https.html
[14]
你连 HTTPS 原理都不懂,还讲“中间人攻击”?: https://juejin.cn/post/6844904065227292685
[15]
从输入URL到浏览器显示页面的流程: https://nyimac.gitee.io/2020/12/10/URL%E8%AE%BF%E9%97%AE%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%81%E7%A8%8B/
[16]
JVM 垃圾回收详解: https://javaguide.cn/java/jvm/jvm-garbage-collection.html
[17]
类加载器详解: https://javaguide.cn/java/jvm/classloader.html
[18]
Leetcode 44.二叉树每层找最大值: https://leetcode.cn/problems/hPov7L/
[19]
如何构建一个爬虫代理服务?: http://kaito-kidd.com/2015/11/02/proxies-service/
[20]
解析分布式系统的缓存设计: https://segmentfault.com/a/1190000041689802
·········· END ··············