近期面试了几个后端岗位,记录一下面试得出的经验。

一、面试中的问题

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.基础知识方面

第一种就是单纯问你的基础知识,这方面理解的基础上记忆就好了。

第二种就比较复杂。面试官会结合具体的实际业务场景来对基础知识进行提问。这一块要求对知识的掌握程度更加深刻。