字节跳动后端研发提前批一面二面(Base上海)

面试定在了上午10:30.最开始开始面试官有点事情,HR打电话过来让我稍等一下,所以正式开始已经是快11点了。

一面

最开始一段自我介绍。

  • 项目介绍
    面试官注意到我的专业是地理信息系统,而他貌似现在也在做地理信息相关的事情。
    所以就问了:
  1. 地理遥感做些什么?
    我解释了地理(信息系统)和遥感是两个方面,分别解释了一下。(自我感觉尚可)。在提到地理的时候,我说到了比如轨迹信息挖掘。
  2. 轨迹信息挖掘做过什么?
    提到了协助师兄做的,外卖车轨迹重构路网
  3. GPS偏移很大怎么解决?
    偏差其实在10m左右,用kde加滤波操作。
  4. 介绍其中一个项目
    我介绍了重研
  5. 政务项目的介绍
  6. 坐标转换怎么做的?爬了多少数据?
  • 基础知识
    面试官问了我哪一方面学习的比较好,我说了java。
  1. 介绍HashMap,为什么要2倍扩容ConcurrentHashMap和ConcurrentHashMap的区别
    回答的尚可
  2. Java中并发控制的方式
    wait/notify、synchronized、ReentrantLock……
  3. 重入锁与普通锁的区别
    回答了可重入、可以设置公平锁、可以限时
  4. 详细解释重入锁中的构造函数
    没写出来。。
  5. 生产者消费者、阻塞队列
    没写出来。。面试官人还是超好的,一直说稍微写一点,我不争气TAT..
  • 算法题
    代码题1:最大子数组和
    写出来了,但是感觉写的很慢,以后要加强算法方面的锻炼,尤其是手写算法。
    (本来到这个介绍以后,面试官说了面试介绍,让我等hr消息,后来他又出了一道算法题,让我只讲一下思路。给了我二面的机会,感谢!)
    代码题2(只说思路):找数组中和为某个数的两个数
    开始说了用hashmap,o(n)的时间复杂度和空间复杂度
    面试官提示,能不能不借助额外空间,说了两次遍历,n方的复杂度
    面试官又引导说,时间复杂度能不能更小一点,于是想到了首先进行排序,然后通过左右指针来进行遍历。能达到nlogn的时间复杂度

二面

一面过后,等了快20分钟,迎来了二面。
二面面试官直奔主题

  • 基础知识
  1. TCP挥手
    bingo
  2. CLOSED-WAIT的状态在什么时候出现
    啊啊啊
  3. TCP和UDP,SMTP,HTTP分别用了什么协议
    bingo
  4. 进程和线程
    开始就像背书一下来回答,面试官非常不满意,总结:以后最好举例子!
  5. 开辟线程需要空间?堆和栈
    啊啊啊。
    6.计算机网络是怎么学习的
    说了本科课程学过谢希仁的课本,之后最近又复习了一下,(其实还没有复习完)
  6. 怎么学习?数据结构?
    自学《大话数据结构》
  • 算法题
    给定两个正整数M和N,N 题目是理解了,但是在排序的算法的时候,想借助字符串,不让用,短时间脑子短路,竟写不出代码了。。。
  • 其他
  1. 问我最近在学习什么,我说了高性能mysql
    问:MySQL索引,覆盖索引
    我回答了哈希索引、聚簇索引。。。
    面试官质疑,这两个索引是同一等级的吗?
    。。。。感觉照着面试题来复习理解的太肤浅了

总结

感觉自己还有好多不足,别人并不会因为你非科班出身而降低要求,要加油哇,成为强者才能有底气。
接下去要重点加把油的:

  • 算法题,要模拟考试的场景,以及在牛客网上写,不借助IDE。
  • 操作系统的基础知识还是要掌握的
  • 在面试前,重新看了《计算机网络》,感觉这本书的条理清新,比我之前看的很多博客要好
  • 代理模式继续看

你可能感兴趣的:(字节跳动后端研发提前批一面二面(Base上海))