8月27日字节跳动一二面

秋招以来,截至到目前为止,最最好的一场。但是还是凉了

一面

首先面试官跟我说了一下他面试的时候,可能会记录下我的表现,提前跟我打了个招呼。

上来先是简单的自我介绍。

  • 你简历里,项目里都是偏向Android的,那为什么现在要面java后端的呢?
  • springboot和spring cloud最大的区别是什么?在概念上有什么区别,或者说适用的场景有什么区别。
  • spring中的配置,讲一讲主要是用到了什么样的技术。
  • 说一下注解都包含哪些类型?
  • 如果你定义了两个注解,然后一个是运行时的,一个是编译时的,那它们两个在整个程序,从准备阶段、编译和运行阶段,有什么区别?就是为什么要有这些type。
  • 运行时还能拿到编译时候的注解吗?
  • Redis适用的场景是什么?假如一个系统有了redis,就有哪些功能,Redis和它的同类替代品有什么区别?
  • Redis的主从节点之间的区别是什么?什么时候进行切换?
  • Redis单机大概能撑多少的QPS吗?
  • Redis都有哪些数据结构?先说下五种基本的。
  • 说一下zset用到了哪些底层数据结构。什么时候发生这些数据结构之间的切换。
  • 跳表的查询时间复杂度,按照member查询和按照score查询,时间复杂度分别是多少。
  • 你觉得rabbitMQ适用于什么场景
  • 那么MQ的主要作用是什么?
  • 说下你对解耦的理解。关于MQ上,在解耦方面上,你可以说说自己的想法。
  • Nginx怎么解决跨域的问题。你先说下什么是跨域。那么APP中的跨域呢?

面试官说项目就先聊到这里。

  • Redis中的分布式你是怎么实现的?
  • 那如果在集群中,Redis中锁的创建和释放,对于整个集群来说,意味着什么,发生了什么,可以说下嘛?
  • 写一个Linux命令,查出当前目录中,所有创建时间在一个月以前的文件,并压缩到指定文件夹。你可以查资料,就是你可以使用搜索引擎。(把我惊呆了,第一个面试让我用搜索引擎的…)
  • java的concurrenthashmap和hashmap的区别
  • 说一下它们俩的内部实现。
  • 说一下ConcurrentModificationException,遇到过吗?具体是什么?
  • 新生代和老年代的区别,为什么要这么分代呢?
  • 听说过sync-flood攻击吗(应该是syn-flood,面试官的发音有点emmm)
  • 说一下死锁的产生条件。
  • 内存碎片是如何产生的。

先考一个智力题,有100只狼和1只羊,狼吃了羊就会变成羊,那么狼会不会去吃羊。

接下来是代码题,给定两个有序的数组,求出所有的元素中,第k小的。

最后就是反问。你投递的是抖音直播,关于直播这块有什么想问的吗?我感觉我回答的有些送命,我说的是我基本不怎么看直播…

然后面试官说:你稍微等会,一会二面来找你。

二面10分钟后就开始了。

二面

先做个自我介绍。

  • 我看你做客户端比较多,为什么现在做了java后端呢?
  • 技术方面你觉得自己掌握的比较好的方面有哪些?
  • java中有一个叫泛型,我有一个这样的例子(面试官手打的例子),List<A> list ,我想放入B,其中的AB这两个对象毫无关系。怎么写呢?事后想想不会是直接把泛型去掉吧??
  • 那假泛型有哪些坑?
  • java典型的垃圾回收是怎么做的?
  • 有哪些可以作为GC Roots。
  • 以一种体系化的方式,给我介绍一下垃圾回收。
  • 垃圾回收会stop the world,这一步会发生在什么时候,以及如何避免?
  • 为什么必须要stop the world?
  • 标记复制的标记,是先去找gc root吗?那你想过这么一个问题吗,我做新生代垃圾回收的时候,我怎么去处理被老年代引用的对象。
  • 回到stop the world,用户线程是怎么被停下来的?
  • 什么样的点是safe point呢?为什么要选择这些点做safe point呢?
  • TCP在建立连接的时候是三次握手,而挥手是四次呢?
  • 断开连接的时候有个状态是TIME-WAIT,为什么要有这个状态?这个状态的时间是多少呢?

算法:给定一棵二叉树,然后呢我们要把它就地按照中序遍历使它变成双向链表。

  • mysql用在哪些场景呢?
  • 数据库的隔离级别,有一个repeatable read,这个隔离级别什么时候会用到,为什么要用到这个?什么时候需要可重复读?
  • volatile的作用是?那你觉得它和repeatable read是冲突的吗?为什么这两个技术是截然相反的呢?
  • 为什么会有可见性问题?工作内存具体在哪里?
  • 为什么要进行指令重排?
  • 指令重排会带来什么问题?

你有什么想要向我了解的吗?

总结

今天的字节两个面试官是真的绝了,面的真的是不错,发现自己很多缺点,而且也找到了很多自己的不足,比如我以前就一直没想过,为什么要这么做?而只是看了书,明白了,哦,原来是这么做的,而不会去思考为什么要这么做。