最近,我的一位朋友在找工作,已经拿到了美团、快手等公司的Offer,准备选择其中一家入职了。

后来他又接到了字节跳动的电话,通知他去参加三面。从二面到三面之间隔了挺久的,他以为都没戏了,结果就收到了通知。

由于已经拿到了很多大厂的Offer,他对这次面试还是挺有信心的。但是回来之后,表现的特别沮丧。

一问之下,原来是面试官问的一些问题他回答的不好,他说面试官揪着源码一直问,但是自己并没有深入看太多的源码,所以回答的不是太好。

他给我总结了一下面试官关于源码部分的问题,主要题目如下:

1、你看过那些源码吗?

2、那你能讲讲HashMap的实现原理吗?

3、HashMap什么时候会进行rehash?

4、HashMap什么时候会进行扩容?

5、那HashMap的初始容量设置成多少比较合适呢?

6、结合源码说说HashMap在高并发场景中为什么会出现死循环?

7、JDK1.8中对HashMap做了哪些性能优化?

8、HashMap和HashTable有何不同?

9、HashMap 和 ConcurrentHashMap 的区别?

10、ConcurrentHashMap和LinkedHashMap有什么区别?

11、为什么ConcurrentHashMap中的链表转红黑树的阀值是8?

12、什么是ConcurrentSkipListMap?他和ConcurrentHashMap有什么区别?

13、还看过其他的源码吗?Spring的源码有了解吗?

14、SpringBoot的源码呢?知道starter是怎么实现的吗?

以上,就是我这位朋友被面试官血虐的过程。全程围绕源码展开。除了他以外,其实还有很多人在面试中也被深入的问过很多源码问题。

如下面这两位:

那么,为什么面试官这么喜欢问源码?作为面试者你又为什么需要看源码呢?

难道是为了面试吗?我觉得不是!我觉得看源码有以下几个好处:

1、可以从源码中学习

比如我们看JDK的源码,其中会有很多关于性能优化、防并发的例子,还有很多地方用了设计模式,这些都是很好的可以用来学习的代码。

对于初学者来说,很多代码格式、命名等都是需要学习的,最好的办法就是通过开源代码来学习。

2、深入源码才能懂得原理

有的时候,我们使用的第三方的框架,中间件等,我们要想了解他们的原理,最有效的办法就是直接看源码。源码是不会骗人的。

3、更好的解决问题

只要是人写的代码,就可能存在bug,别人的开源代码也一样,通过阅读源代码可以更好的定位和解决问题。

4、为了找工作

为什么面试官喜欢问源码,因为这能提现一个面试者是否爱钻研,是否愿意深入原理。而企业需要的恰恰是这样的人!

如何学习源码呢?有几点建议:

1、先从全局出发

不要一上来就直接进入到细节,先通过文档、代码结构、架构分层等方面入手,大概了解一些各个模块的代码都是什么功能。这样在后续深入学习的时候可以刚加便于理解和查找响应代码

2、从问题出发

深入学习之前,最好带着一个问题,比如学习HashMap的源码时候,你带着问题『什么时候会进行rehash』,这样你就可以围绕自己的问题逐渐的深入展开。从点到面,逐步扩展。

3、面向debug学习

在源码学习过程中,也可以通过调试的方式学习,这样可以更好的查看代码调用过程,执行情况,运行时变量等。更加方面理解。

4、做记录

最后,要勤于记录,把自己遇到的问题和思考记录下来,方面后面再次复习和查看。

好了,希望大家都养成阅读源码的好习惯,也希望大家遇到所有源码类面试题都可以轻松搞定。

字节跳动面试官问我看过哪些源码,然后就没有然后了相关推荐

  1. kafka源码_终于看到有人把Kafka讲清楚了,阿里面试官推荐你看这份源码笔记

    这几年,大数据发展迅猛,其中 Kakfa 凭借高可靠.高吞吐.高可用.可伸缩几大特性,成为数据管道技术的首选. 越来越多人开始使用 Kafka,对学习源码的需求也愈发强烈,原因主要有这么几个方面: 了 ...

  2. “作为字节跳动面试官,有些话我不得不说!”

    转载自字节跳动 由于肺炎疫情的影响,不少同学年初跳槽的计划被搁置.虽然计划被打乱,但是这也给我们留出时间更好的准备面试.随着企业复工时间的延长,不少公司裁员.降薪甚至倒闭,之后只会更难. 看了不少「面 ...

  3. 作为字节跳动面试官,这篇文章可以满足你80%日常工作!附小技巧

    前言 下面的题目都是楼主在Android交流群大家在面试字节跳动时遇到的,如果大家有好的题目或者好的见解欢迎分享,楼主将长期维护此帖. 参考解析:郭霖.鸿洋.玉刚.极客时间.腾讯课堂- 内容特点:条理 ...

  4. java面试 上传文件_字节跳动面试官,我也实现了大文件上传和断点续传

    前言 前几天看到一个文章,感触很深 作者从0实现了大文件的切片上传,断点续传,秒传,暂停等功能,深入浅出的把这个面试题进行了全面的剖析 彩虹屁不多吹,我决定蹭蹭热点,录录视频,把作者完整写代码的过程加 ...

  5. 字节跳动+京东+360+网易面试题整理,源码+原理+手写框架

    前言 其实Android开发的知识点就那么多,面试问来问去还是那么点东西.所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度.so,出去面试时先看看自己复习到了哪个阶段就好.我是08年入Andr ...

  6. 字节跳动面试官这样问消息队列:高可用、不重复消费、可靠传输、顺序消费、消息堆积,我整理了下

    写在前面 又到了年底跳槽高峰季,很多小伙伴出去面试时,不少面试官都会问到消息队列的问题,不少小伙伴回答的不是很完美,有些小伙伴是心里知道答案,嘴上却没有很好的表达出来,究其根本原因,还是对相关的知识点 ...

  7. 字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下

    你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图.个人联系方式,欢迎Star和完善 面试开始 ...

  8. 作为字节跳动面试官,有些话我不得不说!

    点击上方"开发者技术前线",选择"星标" 每天 13.21 在看 | 真爱 转载自[字节跳动] 今天看到了一篇关于如何准备面试的文章,从字节跳动出来拿了15个o ...

  9. smallint占用几个字节_面试官问我:Object o = new Object() 占用了多少个字节?

    正文约: 2900字 预计阅读时间: 8分钟 文章首发于我的微信公众号:moon聊技术,欢迎大家关注 moon不讲武德!!!一个类加载机制给面试官说蒙了!! 小小面试一下 前言蜜语 最近马师傅火的不要 ...

最新文章

  1. 【 MATLAB 】nextpow2 函数用法之 Optimize FFT with Padding
  2. Android Fragment 生命周期及其正确使用(建议使用自定义View替换Fragment)
  3. filter operation implementation in SAP Gateway framework
  4. 游戏 新手引导 设计_我认为每个新手设计师都应该知道什么
  5. pat 乙级 1023 组个最小数(C++)
  6. SQL 智能提示工具
  7. nginx logrotate 日志切割
  8. 误删数据库---恢复
  9. VI.Multidocument Transactions
  10. linux 共享内存区及进程间通信
  11. 微信小程序 短信验证码
  12. 【3】令人头疼—在安装pyenchant外部包时产生的意外事件
  13. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  14. 在业务规则中使用OR有何不妥?
  15. 病毒防治:清除***从它的寄生地开始
  16. kill -15 与kill -9的区别
  17. docker搭建Coturn TURN服务器
  18. FTP voyager使用配置参考
  19. MATLAB 求任意一个数的所有因子
  20. 求解!神通数据库ERROR

热门文章

  1. java线程实现方式
  2. C语言面试基础知识整理
  3. 转载:Systemd 命令
  4. python操作excel和txt文件
  5. 我是如何用机器学习技术帮助 HR 省时间的
  6. Linux项目自动部署
  7. 从0开始学springboot之启蒙篇
  8. windows下Python到linux运行遇到的字符编码问题
  9. simulink中s-function使用
  10. Qt工程转换成VS工程