1.问我熟悉的技术栈, 然后根据我说的java和python追问了一下问题:1)二者区别; 2)java编译的具体过程,3)python有没有编译为字节吗;4)java和python的多线程问题;5)python为什么底层没有实现真正的多线程(这个之前面别的被问过,转头忘了ww)
2.讲一下什么是线程安全, 怎么实现的线程安全
3.为什么队列是线程安全的(然后举了个例子, 我没太听懂, 感觉面试官有点对牛弹琴(我是牛呜呜呜))
4. 让我java/c++实现循环队列, 写一个class; 我用的java, 然后拓展: 当队列full的时候怎么扩容, 我用的新队列复制
5.基于以上问了一下, 复制扩容的时候原来的队列什么时候会被回收(我说的不再被引用时候, 不知道对不对呜呜);
6.然后接着讨论了一下java的垃圾回收机制,以及和c++垃圾回收的对比, 优劣等等(c++不是很了解, 凭理解在乱说, java是自动回收的, c++是非自动的, 对开发者来说java可以更专注于业务逻辑, 但是因为回收时间的波动可能对于一些实时性高的程序会有一点影响吧啦吧啦的,不知道对不对, 望大家指正啊啊啊啊)
7.优先队列的底层实现(我说就是堆, 然后有数组+链表实现, 也有二叉搜索树实现)
8.然后因为我正在某比较知名的硬件公司实习, 聊了一下计算机硬件的东西, 比如cpu、gpu的性能问题; 以及数据从硬盘到gpu有哪些过程, 主要的瓶颈在哪; cpu的缓存主要的作用, 缓存什么东西(然后我又多说了L1L2L3);接着追问三级缓存的对比, 我说了大小的性能的问题, 追问了存储的内容是否有分别
9.最后问了一下觉得自己过往经历有亮点的地方, 然后又根据我说的深入讨论了一下
这一轮的面试官反差好大ww(和上一轮一直笑相比)面试官全程严肃, 而且能感觉到他没有固定模版或者要问的问题(可能有几个但不多) 基本上都是根据我给出来的信息深入的追问, 问的也比较深, 有些八股里面也还没背到, 题目也不简单呜呜(而且不接受我用python实现)本来以为自己必挂无疑了, 但是快结束的时候面试官又主动问我对这个岗位有没有想要了解的, 然后介绍了岗位很久且推荐了公众号让我可以深入了解一下岗位的具体职责等等; 又感觉自己也许没挂(或许也可能面试官只是想把面试时间撑满) 感觉自己菜还是要多练