2024.7.4 腾讯客户端开发一面
博主水平有限,面试经验也有限。通过回忆写下这篇博客是为了友好的交流和提高,希望能起到一个抛砖引玉的作用。
- 自我介绍
- 围绕项目展开问答
我简历里面有一个 app 的开发经历,其他的问的还好,其中有一个涉及到 java 多线程,感觉没有回答地很好,下次面试前再多熟悉下。 - Java 回收机制
回答:主要是在资源不可达的时候,会触发 java 回收机制,java 会自动回收资源,不用像 C 语言一样 malloc 和 free。
追问:那什么时候 Java 会判定资源不可达呢?
这个我回答的不是很好,思考的时候说了很多,但感觉没答到点子上。 - Http 和 Https
回答:这个就是从安全性出发进行作答,也回答了 Https 的安全是由 SSL 协议保证的。
追问:SSL 协议是怎么保证安全的。
回答:从加密的角度,大概讲了一下 SSL 的原理
再追问:SSL 的公钥在哪,私钥在哪?
这个知识点不太熟悉,反正最后尽力作答了一下。 - 情景问答题
假设由两个线程 1 和 2,1 从一个大文件中读取数据,然后传输给 2,2 再负责加密。在这个过程中,如果加密速度大于读取速度会怎么样,读取速度大于加密速度会怎么样?针对这两种情况,如何解决?
回答:加密大于读取会导致线程 2 占据资源而不工作,导致资源浪费。读取大于加密会可能会导致缓存区溢出。
然后为了解决读取大于加密,我是从线程通信这块作答的,感觉答得还可以,面试官没有追问。读取大于加密的情况,感觉没有答得很好,面试官也引导了一下,我也做了各方面的回答,感觉没有答出面试官想要的。 - 编程题
- 第一题是给你一个字符串,要你把括号里面的字符串反转,括号按照从内到外的顺序展开。
这个我是用栈写的,难度感觉不是很大,然后面试官给了几个测试案例通过之后又给了第二题。 - 有一个由二维数组组成的数字矩阵,现在需要模拟从矩阵左上角移动到右下角,其中数组中为 0 的数可以通过,其他数不可以通过,移动方向只能是上下左右。请你找到最短路径,并将数组角标打印出来。
这个难度比第一个大,时间也不是很够了,可能写了十几分钟,最后 debug 有点问题,给面试官讲了一下思路之后,就结束了面试。
- 第一题是给你一个字符串,要你把括号里面的字符串反转,括号按照从内到外的顺序展开。
总结:
最后总的时长是在一个半小时左右,第一次面试感觉八股不是很熟练,还有项目中的一些点也不够熟练,需要再过一下项目。代码部分可能还需要多做点力扣,希望下次能把难一点的编程题也做出来。