字节跳动(提前批)——一面面经
今天下午5点钟面试的,杭州某部门的一面,原本以为会问很多操作系统,计算机网络和数据库的知识,结果面试官当场下载我的简历,问了清一色的JAVA问题,全部都是根据简历问答,然后一直追问,问到你不会为止;
- 自我介绍
- 我们来问一些Java基础知识吧,int 和Integer的区别?由Integer对象引出JVM内存结构?int型变量存储在哪里?堆里有没有,有的话存储在堆哪里?🤐(卡死,我回答如果对象有int属性,会存储int);
- 由Integer和int的区别引出,泛型的使用,泛型的实现原理?😑😑(不会);
- GC怎么回收?引用计数法和可达性分析哪个使用的多?为什么?(我说,引用计数***造成循环引用,无法回收),那么可达性分析存在这种情况吗?怎么解决的?(卡死,无语了);
- HashMap的时间复杂度为什么是O(1)?怎么定位到查询对象的位置?hashcode()返回值可能是个很大的int型变量,怎么定位到hash的?了解Hash算法吗?(没具体了解过,end);
- 我们来做题吧:给了两个链表1 ->2 -> 3表示321, 2 -> 4 -> 5表示542, 计算结果输出为: 3 -> 6 -> 8 ,实现 Node add ( Node a, Node b)。 主要是进位处理,先讲思路,再手写,面试官看了没啥问题,也没测试。
- 可能算法题做得比较快,还剩时间,又看了我简历写了设计模式,说哪些用过,那些没有用过,只有代理没有用过,那就讲一下代理吧;🙃
- HashMap红黑树了解吗?(是不是实在想不出问题了,又来了!)红黑树的时间复杂度为什么是log(n);(然后我巴拉巴拉,不了解红黑树,用二叉树解释的,他说还是没说为啥是log(n),数据结构实在学的不好,就说,通过某种数学计算出来,2的n次方,两遍取对数,得出来的!!!注意!!!!!然后戏剧性的一幕来了!!!他说:log(n)的下标不是10吗?怎么变成2了? 我说一直是2啊,10下标的是lg(n)没有‘o’,他说:你确定吗? 我被他问的都怀疑了,说:确定吧。。。。他说:“你确定下标是2?”,我:“确定!” 他:“为什么是2呢?” 我:。。。。。。。。。可能是一种约定吧🤐) 事后我查了一下,我没有说错,下标确实是2,但是我就不明白了,他一直以为是10,为什么还让我解释时间复杂度怎么算出来的,他学的是错的啊,哈哈~~~~
- 憋了好久,实在想不出来什么问题了,他一直在挠头想问题,想不出来了(我寻思着,简历还有好多,为啥不问,是自己不会吗?😁),然后问我有什么问题吗?
全程总共57分钟,感觉他是现准备的,迟到两分钟,下载我的简历,就我简历一直现想问题,然后询问,一直在挠头想问题,最后实在想不出来了,时间也快差不多了,就结束了,而且临近结束时候,旁边有人说:“吃饭去吗?”,他说马上结束了。。。🤣
#字节跳动校招提前批##字节跳动##校招##Java工程师##面经#