【字节跳动】-Java岗-抖音直播(很有水准)

一面:(2.3 68min)

面试的是一个小姐姐,面试体验很好,会根据回答抛出问题,过程还算顺利,没太多卡壳的地方

  1. 自我介绍
  2. 项目介绍
  3. 项目用到token,说一下
  4. 项目如何实现的,如果多终端呢
  5. 还可以存放在哪里 session
  6. 那cookie是什么
  7. 为什么当时没有这么实现? 回答:因为不会
  8. 算法题:正整数开根,保留两位小数
  9. JMM说一下(开始背书)
  10. 说到线程,那么线程是属于哪块区域的
  11. GC说一下(开始背书)
  12. 有用过hashmap吗?实现?
  13. 是线程安全的吗?
  14. 想要线程安全怎么办?
  15. (经典HashMap背书)
  16. 为什么使用红黑树
  17. 红黑树特性
  18. 和平衡搜索二叉树的区别
  19. 时间复杂度?
  20. 在浏览器输入一个网址会发生什么?(背书了背书了)
  21. TCP/IP模型和OSI模型
  22. 用过索引吗
  23. 怎么样确定使用到了索引
  24. 索引类型
  25. 为什么用B+树
  26. 和B树有什么区别
  27. 聚簇索引和非聚簇索引
  28. 有用过锁吗
  29. 说一下lock和synchronized的区别
  30. 代码题:手写一个单例模式吧(默写)
  31. 看到有volatile关键字
  32. 说一下volatile吧
  33. 和synchronized的区别
  34. 乐观锁悲观锁
  35. 反问环节

一面结束,问了面试官感觉面试下来感觉如何,说挺好的,就是有的地方遗忘了,希望后续补全一下知识点。
一面的大量背书直接导致我后续准备接着复习基础,而且一面没有问到计网和多线程,操作系统的知识,感觉之后面试可能是重点,就开始重点准备这一块。

二面 (2.7 53min)

这次的面试官起来就知道是一个大佬,后来问的一些问题也证明了我的猜想

  1. 自我介绍
  2. 没有问项目,问为什么没有实习,自己学习是怎么样学习的,课程成绩
  3. 你觉得自己相比一年前进步了多少
  4. 算法题:编辑距离
    我直接说了我刷到过这道题,然后开始默写,写完了问到替换的时候,我卡住了,就是因为这么卡了一下,让面试官认为我是在背题,后面思考了一会就说了出来,然后还问了我状态转移方程是什么,我说我做动态规划不太会写这种方程,然后大概解释了一下状态有哪几种,状态之间是如何转移的。
    开始提问:
  5. 你使用的是什么版本的jdk?
    硬着头皮说1.8,因为我也没在意,然后开始问1.6和1.7 1.8的差别
    (没准备,从JMM角度和HashMap角度说了一下)
  6. HashMap和HashTable的区别是什么
  7. 那么HashMap有没有线程安全的版本
  8. 如何实现的?
    分段锁分段锁,但是当时忘了,就记得一个继承于ReentrantLock,包括一些细节也没有那么了解,只说了个大概,一些情况需要使用到synchronized关键字。
  9. 说到使用到了mysql 问索引
  10. 索引数据结构
  11. 为什么要用b+树
  12. 聚簇索引和非聚簇索引 (一开始说反了,后来突然意识到)
  13. b+树叶子节点链表一定是放的是key和值吗?
  14. 怎么去分配聚簇索引和非聚簇索引
  15. 为什么这么去分配
  16. 你的项目有很大量级吗,有做过数据库优化吗
    这里实话实说没有,然后直接没问,但是是准备了这方面的知识的
  17. 然后问int存到数据库里面一般你都用什么类型来接
    一开始说我自己项目里我全部是用varchar的,但是显然这样不是最优选择,可以看出来面试官有点迷惑(用varchar?!),最后说用int
  18. 顺着问varchar(35)的含义
    一开始说错了,思考了一下,正确说出来了
  19. 又问了中文在varchar中占几个字符
    回答了不同编码中中文所占字符应该不一样的,回答的2个,但实际是3个,后续面试官纠正的
  20. 又问你在自己项目里有注意过这个编码问题吗
  21. 面试官:感觉你的项目都使用的比较老的技术栈啊(因为看到简历上写的有一个项目是使用jquery和js实现前端页面)
    然后开始问原因,我解释这是刚刚开始做小项目的时候使用的,后来就开始接触前端vue并且结合做前后端分离开发,但是自己还是主要往后端去发展的。
  22. 面试官:感觉你都是为了学一个技术去学啊,你有了解过linux吗
    说了说自己之前用虚拟机部署redis的经历
  23. 面试官:为什么要去用redis呢
    讲了一下redis的优点,然后说而且这个现在基本都在用
  24. 面试官:你说快,那有多快,相比mysql快很多倍,是多少倍,是多少量级的,你现在的电脑配置说一下,四核i5最多可以跑多少个连接
    (面露难色)没试过,但是我之前看学习视频的时候看到别人测过,大概是在几万到几十万这个范围
  25. 面试官:几十万是几十万?
    十几万,根据redis中的一些配置的不同会有上下的浮动

反问环节:
问了没回答出来的编码问题,问之后需不需要去专门注意这一块的知识
又问了根据这次面试,觉得我那块是需要加强的
然后面试官给出了他的见解和建议,让我多思考

反问环节一结束我就大概知道自己凉凉,三四天准备的东西一个都没有问到,就算法最近恶补了一下刷到了,问的问题都是自己平时想都没有想过的,确实就还需要努力,二面直接让我认识到字节的面试难度,在一些小细节上也需要深挖,而且对于整体知识点的连接也尤为重要。

最后的最后还是继续努力,春招上岸自己满意的公司!!也感谢字节大大给的面试机会

发表评论

后才能评论