近期在换工作中,参加了形形色色的公司的面试,现在将聚焦到面试的具体内容上。在这里需要强调的是,我参与的面试是面向中高级开发的工程师;对于某一个问题的展开往往都是由浅到深,以及个人在领域中的应用的理解。这里我没有给出答案。当然面试的时候面试官处理固定的会提问的一些东西外,简历中的技能栏可能会是提问的重点区域。
以下是我总结的可能会问到的问题,但是每一个问题都可以继续深挖三到四层,所以,如果你想拿到高薪和去大厂,那么你必须静下心去研究这些东西。网上百度到的答案估计只能让你成为一个初中级的工程师。所以,想换工作的朋友可以先去准备一下。
java基础部分:
数据结构与算法:
- 在这一部分中除了要了解常用的java数据结构和原理外,还需要知道java集合框架原理。
- 并且这一部分需要结合并发来回答,确保线程安全以及原子性操作等。常会提问到的如:队列和栈的相互实现;树的遍历(前序遍历和后序遍历),这里不一定是二叉树;HashMap的原理等。在数据结构中需要尤为注意的是哈希表。
- 在算法部分:往往需要考虑到时间复杂度或者空间复杂度,面试官往往要求你将复杂度降到最低,有事什么需要让你考虑内存空间问题;比如考察排序算法、以及排序算法的变形(去数组中最大的前n个值、奇偶分别放在数组的左右两侧等)