近期面试了几个后端岗位,记录一下面试得出的经验。
一、面试中的问题
1.问简历上的项目
大体来说就是会照着简历上写的项目来进行提问。
首先,就是项目的总体框架,涉及到的技术栈。会对涉及到的知识进行提问。
其次,在项目中的具体工作,就是你负责了哪一部分。项目中遇到的困难,以及如何解决的。
最后,面试官问这些一个是测试你的技术掌握的深度,再一个就是看看你对技术的热情程度。所以需要在这个过程中体现出来自己对技术的热枕。
2.操作系统相关
- 进程管理
- 内存管理
- 死锁相关
3.计算机网络相关
- http
- https
- http2.0
- osi和tcp/ip网络模型
- Tcp三次握手,四次挥手。这里不仅要知道怎么握手,还要知道为什么是三次和四次
- cookie和session
- 从输入网址到显示页面,发生了什么
4.mysql相关
- 事务
- 定义及四个特征
- 隔离级别
- innodb和myisam存储引擎
- 脏读,不可重复度和幻读
- 索引
- 索引的类型
- 匹配原则
- 底层数据结构:B+树
5.java
5.1 java集合
- hashmap
- arrayList
5.2 JVM
- 内存机构
- 垃圾回收机制
5.3 多线程
- hashmap、hashtable、CurrentHashMap
- 锁
二、面试经验
1.算法方面
首先,要弄清楚面试官的需求。以及一些题目的要求。所以第一步是一定不要马上写代码!!!拿到题目要问清楚面试官的具体要求,然后把自己的具体思路讲述给面试官。思路得到面试官肯定后,再写代码。
其次,在写代码的过程中,一定要注意程序的鲁棒性。特别要考虑一些空值和边界值的情况
最后,面试官出的题目可能是连环题,在你写完代码之后,会问你写的程序的时间复杂度和空间复杂度。然后再问你优化方案。
2.项目经历方面
首先一个明确你在项目中的工作,然后是技术难点和解决方案,也有可能是技术亮点。
这类问题回答过程中一定要体现自己对于技术的热情。
3.基础知识方面
第一种就是单纯问你的基础知识,这方面理解的基础上记忆就好了。
第二种就比较复杂。面试官会结合具体的实际业务场景来对基础知识进行提问。这一块要求对知识的掌握程度更加深刻。