今天,再战了一次腾讯。
这次的面试总的来说面的挺开心的,面试官人很好,知道了自己的许多不足。话不多说,先说说面试前的准备吧。
前期准备
面试前一天,我首先将自己之前写过的博客从线程池开始往后全部都回顾了一遍,重点看了类加载部分。
最近真的压力巨大,很多事情堆在一起,公司,学习,面试等等,让我并没有想花太多心思准备(心累~)。
面试当天,急急忙忙把堆排序看了一遍(毕竟上一次面试就挂在堆排序了),然后吃了又看了看二叉树,就开始面试了。
我重点的内容准备如下:
计算机网络:HTTP协议,HTTPS协议,TCP建立与释放过程,ip地址相关。
数据结构:二叉树,堆,栈等。
算法:刷了大约30道LeetCode题(有点少哈哈)。
Java:线程池,线程同步,JVM(gc,类加载),以及我自己日常总结的关于Java知识点的相关文档。
操作系统:线程与进程,进程调度策略。
面试过程
吸取上一次面试的教训,这一次语言简洁一点。
首先是自我介绍,然后面试官有趣的问了我一句:你觉得信息安全和软件工程这种计算机专业有什么区别。
突然有种回到上学期考试的感觉,我主要从数据的保密性和真实性,以及网络传输中的加密进行了回答,之后正式开始了技术面。
1、ArrayList。
请你简要谈一谈ArrayList的容量是如何实现动态扩容的。
答:ArrayList中有一个Add方法,表示往数组中增添数据,数据填满了整个数组的时候,ArrayList会进行1.5倍的扩容。
ArrayList它是通过Add方法,如果填满了的话再开一个是之前那个数组1.5倍容量大的数组,然后将原数据复制进去实现的吗?
(之前看过源码但忘记了)我细想了会,想不出其他还有什么做法,直接回答了:是。

本文记录了一次腾讯面试经历,从面试准备到面试过程,涉及ArrayList扩容机制、HashMap与TreeMap的区别、垃圾回收、HTTP协议、进程与线程的区别、扫雷算法等技术问题。面试官给出了对知识深度和广度的建议,包括阅读《深入理解计算机系统》以加强系统底层知识,以及提升数据结构和算法能力。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



