二面腾讯挂在了堆排序!时隔半年再次挑战“南山必胜客”!

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

今天,再战了一次腾讯。
这次的面试总的来说面的挺开心的,面试官人很好,知道了自己的许多不足。话不多说,先说说面试前的准备吧。

前期准备

面试前一天,我首先将自己之前写过的博客从线程池开始往后全部都回顾了一遍,重点看了类加载部分。

最近真的压力巨大,很多事情堆在一起,公司,学习,面试等等,让我并没有想花太多心思准备(心累~)。

面试当天,急急忙忙把堆排序看了一遍(毕竟上一次面试就挂在堆排序了),然后吃了又看了看二叉树,就开始面试了。

我重点的内容准备如下:

计算机网络:HTTP协议,HTTPS协议,TCP建立与释放过程,ip地址相关。
数据结构:二叉树,堆,栈等。
算法:刷了大约30道LeetCode题(有点少哈哈)。
Java:线程池,线程同步,JVM(gc,类加载),以及我自己日常总结的关于Java知识点的相关文档。
操作系统:线程与进程,进程调度策略。

面试过程

吸取上一次面试的教训,这一次语言简洁一点。

首先是自我介绍,然后面试官有趣的问了我一句:你觉得信息安全和软件工程这种计算机专业有什么区别。

突然有种回到上学期考试的感觉,我主要从数据的保密性和真实性,以及网络传输中的加密进行了回答,之后正式开始了技术面。

1、ArrayList。
请你简要谈一谈ArrayList的容量是如何实现动态扩容的。
答:ArrayList中有一个Add方法,表示往数组中增添数据,数据填满了整个数组的时候,ArrayList会进行1.5倍的扩容。
ArrayList它是通过Add方法,如果填满了的话再开一个是之前那个数组1.5倍容量大的数组,然后将原数据复制进去实现的吗?
(之前看过源码但忘记了)我细想了会,想不出其他还有什么做法,直接回答了:是。

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值