设计模式+框架考什么 + 高频题汇总
由于内容较多,我分类出来汇总了,全部面试题汇总的看这里:八股文题库(必看)
我把框架和设计模式放到一起了,因为我觉得回答设计模式的时候,最好是结合框架来回答是最好的,有很多例子,这样可以体现你真的学过。
下面我说一说需要掌握的点 + 给出对应的复习资料,这方面
一、框架 + web + 设计模式考啥
我知识星球强调过很多次,在校招中,这方面其实问的不多,重点还是基础,不过偶尔会基于你的项目来问一问,下面我跟大家说一下一般问啥,你们把我说的当作重点来复习哈。
1、设计模式:设计模式问的很容易的,就让你简单说一说有哪些设计模式,举一些例子,或者直接让你说一说某个设计模式,除了单例模式,其他不会让你写代码,不过单例模式,你最好是会写代码,一般只需要掌握 6 个设计模式(优先级排序):
- 单例模式(非常非常重要,得会写常见几种)
- 代理模式(也比较重要,主要知道他的应用)
- 工厂模式(也比较重要,主要知道他的应用)
- 观察者模式(知道下应用和大致原理就行)
- 模版方法模式
- 适配器模式
主要这几种,下面会给出一篇 Spring 框架的文章,里面把这几种都说了
2、Javaweb:基本就问下 cookie 和 session,以及 servlet 的一个请求流程,重点复习下 cookie 和 session 问题就行,咱们的项目也用到这些了,难点就是如何解决单点登录问题,也就是所谓的单点问题。
3、框架:框架基本就问 Spring,并且基本就问 IOC 和 AOP,其他问的少,有的话就问下事务相关,MyBatis 也是问的非常少吧,还有可能 就是问下你对 SpringMVC 的理解。
二、复习材料
这一块我大部分找了视频,主要是视频里,老师会带着大家去实践一下,我觉得可以帮助大家更好理解,并且对于重点的,我也给了文章,文章可以更加深入去理解一些东西,我希望对于 IOC 和 AOP,大家可以明白他们的本质。
另外,还是那句话,我希望你能够好好重视我给的资料,重视我说的知识点,不要一股闷头在学习自己的。当然,业余之前,你有时间就多看看不同版本的讲解,加深理解。
设计模式
Spring 设计模式总结(文章),面试官问你设计模式的时候,你有时候可以举例子,就从 Spring 这里举例子,当然,你有其他的例子也行,最好是实际存在的,不是比喻。
单例模式(上)—如何优雅地保证线程安全问题(文章):掌握双重检测机制 + 用volatile防止指令重排序问题(知道为啥不加volatile会出现线程不安全)
单例模式(下)—聊一聊单例模式的几种写法(文章):多种单例模式的实现方式都了解下,各有各的优缺点,我还被问过几次,最好可以结合实际问题给出对应的方式。
单例模式最重要了,不过他的难点是线程安全问题,你得搞懂,这两篇文章写了几种单例模式的代码,各自都有各自的问题,如果你不大懂的,可以看下
Java web
cookie和session你们相关用过,应该不用强调了,难点是单点登录问题,我还被阿里问过几次,大家可以看下这两篇文章,特别是第二篇,提供了详细的解决方案,第一篇当作简单版的概念普及吧,如果这个能很好回答,肯定加分。
JSP九大内置对象(视频):这个大公司基本不问了,不过有些小公司可能会问下
Statement和PreparedStatement的区别(视频)
框架
大厂框架考的少,一般掌握了 IOC 和 AOP,就掌握了半壁江山,其他的,有时间就了解下吧;非大厂的,可以都好好看下。当然,大家都可以看看了,都是视频,时间不长,就简单扫描一下。
我秋招时,就是看了这两篇之后,基于这两篇去回答面试的到,你们可以看看
IOC与DI的理解(视频):IOC 就是控制反转,要注意这是一种思想,所以控制反转,就是本来是 A 控制 B 的,现在变成由 B 来控制 A 了,控制权被反转了,回答的时候,你就先给面试官解释下控制反转的含义,之后说一说依赖注入啥的,总之就是,把自己懂的尽量流畅表达出来吧。