过年之后相信有一部分的人,早已磨刀霍霍向大厂。势必要大展拳脚,必将在大厂内创出一片天地。但是,想必大家都知道:最近几年的最严重的互联网寒冬来临,各位兄弟都会说“江湖再见”。耳边总是充刺着流言蜚语,这个地方裁员了,这个地方缩减HC。弄得人心慌慌。年后将是一片血雨腥风,程序界的江湖将在这一天精彩斑斓。
但我们要知道,寒冬之中,什么是最珍贵,就让鄙人告诉你:人才。只要有过硬的技术和装备,在逆风直下的情况下,咱们也能迎难而上,打他个戳手不及。不是“李云龙”大哥说:“过狭路相逢勇者胜。”
金三银四俗称跳槽黄金季,虽然今年的情况可能“特殊”点,但也不影响大家拿高薪,去更牛逼的公司,认识更多大牛,提升自己的职场竞争力的想法。
那怎样才能通过BAT面试官的考核?怎样成为一名Offer收割机?
收割Offer有一个最直接的公示:Offer=硬实力+软实力+好的心态,三者缺一不可。
这里说的硬实力,也就是技术上的真实积累。
怎么来体现你的技术实力?总的分为:技术深度和技术广度这两方面。
技术广度通俗的讲,就是你熟悉该技术点的使用以及基本原理。一般面试官在面试首轮会问很多技术点,来考核你是否能正确使用。
技术深度通俗的讲,就是深入技术原理的同时,还知道优劣势比较,以及同类产品的横向和纵向比较,以及非常重要的应用场景。比如:消息队列MQ,市面有哪些MQ,RabbitMQ、RocketMQ、ActiveMQ…等等他们各自的架构设计,优劣势比较,各自的应用场景(并发量和使用优劣比较等)。以及MQ的消息去重,如何保证消息不丢失等。这样就沿着MQ这个话题,深入的去考核你对MQ的掌握程度。
技术包括了:
网络编程
算法和数据结构
JVM
并发编程
数据库
分布式架构设计
负载均衡
软实力在面试过程中也尤为重要(有时候真的要更重要),主要是指和面试官的沟通,对一个问题的阐述方式和表达方式,逻辑思维能力等。
面试过程全程微笑,项目描述需要严谨的表述,个人的优缺点基本要做到随口而出…等这些其实就是软实力的体现。
一个好的面试问题能使应聘者的本性显露出来——诚实,可信,反应敏锐等等。这里我整理出关于 Spring 的面试题。希望这个总结能为面试官和应聘者提供一些参考,若你能轻而易举回答所有问题,相信这一块的面试就不必担心了。
PS:因文章篇幅问题,我这里没有全部进行解答,我已经整理打包成PDF文档,有需要的可以关注我的公众号【风平浪静如码】获取资料!
1.什 么 是 spring?
2.使 用 Spring 框 架 的 好 处 是 什 么 ?
3.Spring 由 哪 些 模 块 组 成?
4.核 心 容 器 ( 应 用 上 下 文) 模 块。
这 是 基 本 的 Spring 模 块 , 提 供 spring 框 架 的 基 础 功能 ,BeanFactory 是 任 何 以 spring 为 基 础 的 应 用 的 核心 。Spring 框 架 建 立 在 此 模 块 之 上 , 它 使 Spring 成 为一 个 容 器。
5.BeanFactory – BeanFactory 实 现 举 例 。
Bean 工 厂 是 工 厂 模 式 的 一 个 实 现 , 提 供 了 控 制 反 转 功能 , 用 来 把 应 用 的 配 置 和 依 赖 从 正 真 的 应 用 代 码 中 分离 。最 常 用 的 BeanFactory 实 现 是 XmlBeanFactory 类 。
6.XMLBeanFactory
最 常 用 的 就 是org.springframework.beans.factory.xml.XmlBeanFactory , 它 根 据 XML 文 件 中 的 定 义 加 载 beans。 该 容 器从 XML 文 件 读 取 配 置 元 数 据 并 用 它 去 创 建 一 个 完 全 配 置的 系 统 或 应 用。
7.解 释 AOP 模 块
AOP 模 块 用 于 发 给 我 们 的 Spring 应 用 做 面 向 切 面 的 开发 , 很 多 支 持 由 AOP 联 盟 提 供 , 这 样 就 确 保 了 Spring和 其 他 AOP 框 架 的 共 通 性 。 这 个 模 块 将 元 数 据 编 程 引 入Spring。
8.解 释 JDBC 抽 象 和 DAO 模 块。
通 过 使 用 JDBC 抽 象 和 DAO 模 块 , 保 证 数 据 库 代 码 的 简洁 , 并 能 避 免 数 据 库 资 源 错 误 关 闭 导 致 的 问 题 , 它 在 各种 不 同 的 数 据 库 的 错 误 信 息 之 上 , 提 供 了 一 个 统 一 的 异常 访 问 层 。 它 还 利 用 Spring 的 AOP 模 块 给 Spring 应用 中 的 对 象 提 供 事 务 管 理 服 务 。
9.解 释 对 象/关 系 映 射 集 成 模 块 。
10.解 释 WEB 模 块 。
11.Spring 配 置 文 件
12.什 么 是 Spring IOC 容 器?
Spring IOC 负 责 创 建 对 象 , 管 理 对 象 ( 通 过 依 赖 注 入(DI) , 装 配 对 象 , 配 置 对 象 , 并 且 管 理 这 些 对 象 的 整个 生 命 周 期。
13.IOC 的 优 点 是 什 么?
IOC 或 依 赖 注 入 把 应 用 的 代 码 量 降 到 最 低 。 它 使 应 用 容易 测 试 , 单 元 测 试 不 再 需 要 单 例 和 JNDI 查 找 机 制 。 最小 的 代 价 和 最 小 的 侵 入 性 使 松 散 耦 合 得 以 实 现 。IOC 容器 支 持 加 载 服 务 时 的 饿 汉 式 初 始 化 和 懒 加 载 。
14.ApplicationContext 通 常 的 实 现 是 什 么?
15.Bean 工 厂 和 Application contexts 有 什 么 区别?
Application contexts 提 供 一 种 方 法 处 理 文 本 消 息 , 一个 通 常 的 做 法 是 加 载 文 件 资 源 ( 比 如 镜 像 ) , 它 们 可 以向 注 册 为 监 听 器 的 bean 发 布 事 件 。 另 外 , 在 容 器 或 容器 内 的 对 象 上 执 行 的 那 些 不 得 不 由 bean 工 厂 以 程 序 化方 式 处 理 的 操 作 , 可 以 在 Application contexts 中 以 声明 的 方 式 处 理 。Application contexts 实 现 了MessageSource 接 口 , 该 接 口 的 实 现 以 可 插 拔 的 方 式 提供 获 取 本 地 化 消 息 的 方 法 。
16.一 个 Spring 的 应 用 看 起 来 象 什 么?
17.什 么 是 Spring 的 依 赖 注 入?
18.有 哪 些 不 同 类 型 的 IOC( 依 赖 注 入 )方 式?
19.哪 种 依 赖 注 入 方 式 你 建 议 使 用 , 构 造 器 注 入 , 还 是Setter 方 法 注 入?
20.什 么 是 Spring beans?
21.一 个 Spring Bean 定 义 包 含 什 么?
22.如 何 给 Spring 容 器 提 供 配 置 元 数 据?
23.你 怎 样 定 义 类 的 作 用 域?
当 定 义 一 个 在 Spring 里 , 我 们 还 能 给 这 个bean 声 明 一 个 作 用 域 。 它 可 以 通 过 bean 定 义 中 的scope 属 性来 定 义 。 如 , 当 Spring 要 在 需 要 的 时 候 每 次生 产 一 个 新 的 bean 实 例 ,bean 的 scope 属 性 被 指 定 为prototype。 另 一 方 面 , 一 个 bean 每 次 使 用 的 时 候 必 须返 回 同 一 个 实 例 , 这 个 bean 的 scope 属 性 必 须 设 为singleton。
24.解 释 Spring 支 持 的 几 种 bean 的 作 用 域 。
Spring 框 架 支 持 以 下 五 种 bean 的 作 用 域 :
25.Spring 框 架 中 的 单 例 bean 是 线 程 安 全 的 吗?
不 ,Spring 框 架 中 的 单 例 bean 不 是 线 程 安 全 的 。
26.解 释 Spring 框 架 中 bean 的 生 命 周 期 。
27.哪 些 是 重 要 的 bean 生 命 周 期 方 法 ? 你 能 重 载 它 们吗?
28.什么是 Spring 的内部 bean?
29.在 Spring 中如何注入一个 java 集合?
30.什么是 bean 装配?
31.什么是 bean 的自动装配 ?
32.解释不同方式的自动装配
33.自动装配有哪些局限性?
34.你可以在 Spring 中注入一个 null 和一个空字符串吗?
35.什 么 是 基 于 Java 的 Spring 注 解 配 置? 给 一 些 注 解的 例 子
36.什 么 是 基 于 注 解 的 容 器 配 置?
37.怎 样 开 启 注 解 装 配?
38.@Required 注 解
39.@Autowired 注 解
40.@Qualifier 注 解
41.在 Spring 框 架 中 如 何 更 有 效 地 使 用 JDBC?
42.JdbcTemplate
43.Spring 对 DAO 的 支 持
44.使 用 Spring 通 过 什 么 方 式 访 问 Hibernate?
45.Spring 支 持 的 ORM
46.如 何 通 过 HibernateDaoSupport 将 Spring 和Hibernate 结 合 起 来?
47.Spring 支 持 的 事 务 管 理 类 型
48.Spring 框 架 的 事 务 管 理 有 哪 些 优 点?
49.你 更 倾 向 用 那 种 事 务 管 理 类 型?
50.解 释 AOP
51.Aspect 切 面
52.在 Spring AOP 中 , 关 注 点 和 横 切 关 注 的 区 别 是 什么?
53.连 接 点
连 接 点 代 表 一 个 应 用 程 序 的 某 个 位 置 , 在 这 个 位 置 我 们可 以 插 入 一 个 AOP 切 面 , 它 实 际 上 是 个 应 用 程 序 执 行Spring AOP 的 位 置 。
54.通 知
通 知 是 个 在 方 法 执 行 前 或 执 行 后 要 做 的 动 作 , 实 际 上 是程 序 执 行 时 要 通 过 SpringAOP 框 架 触 发 的 代 码 段 。
Spring 切 面 可 以 应 用 五 种 类 型 的 通 知 :
55.切 点
切 入 点 是 一 个 或 一 组 连 接 点 , 通 知 将 在 这 些 位 置 执 行 。可 以 通 过 表 达 式 或 匹 配 的 方 式 指 明 切 入 点 。
56.什 么 是 引 入?
57.什 么 是 目 标 对 象?
58.什 么 是 代 理?
59.有 几 种 不 同 类 型 的 自 动 代 理?
60.什 么 是 织 入 。 什 么 是 织 入 应 用 的 不 同 点?
61. 解 释 基 于 XML Schema 方 式 的 切 面 实 现。
62… 解 释 基 于 注 解 的 切 面 实 现
63.什 么 是 Spring 的 MVC 框 架?
64.DispatcherServlet
Spring 的 MVC 框 架 是 围 绕 DispatcherServlet 来 设 计的 , 它 用 来 处 理 所 有 的 HTTP 请 求 和 响 应 。
65.WebApplicationContext
WebApplicationContext 继 承 了 ApplicationContext并 增 加 了 一 些 WEB 应 用 必 备 的 特有 功 能 , 它 不 同 于 一般 的 ApplicationContext , 因 为 它 能 处 理 主 题 , 并 找到 被 关 联 的 servlet。
66.什 么 是 Spring MVC 框 架 的 控 制 器?
控 制 器 提 供 一 个 访 问 应 用 程 序 的 行 为 , 此 行 为 通 常 通 过服 务 接 口 实 现 。 控 制 器 解 析 用 户 输 入 并 将 其 转 换 为 一 个由 视 图 呈 现 给 用 户 的 模 型 。Spring 用 一 个 非 常 抽 象 的 方 式 实 现 了 一 个 控 制 层 , 允 许 用 户 创 建 多 种 用 途 的 控 制器。
67.@Controller 注 解
68.@RequestMapping 注 解
1.什么是 Spring 框架??
Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。
2.使用 Spring 框架能带来哪些好处?
3.什么是控制反转(IOC)?什么是依赖注入?
4.请解释下 Spring 框架中的 IoC?
5.BeanFactory 和 ApplicationContext 有什么区别?
6.Spring 有几种配置方式?
将 Spring 配置到应用开发中有以下三种方式:
7.如何用基于 XML 配置的方式配置 Spring?
8.如何用基于 Java 配置的方式配置 Spring?
9.怎样用注解的方式配置 Spring?
10.请解释 Spring Bean 的生命周期?
11.Spring Bean 的作用域之间有什么区别?
Spring 容器中的 bean 可以分为 5 个范围。所有范围的名称都是自说明的,但是为了避免混淆,还是让我们来解释一下:
12.什么是 Spring inner beans?
13.Spring 框架中的单例 Beans 是线程安全的么?
14.请举例说明如何在 Spring 中注入一个 Java Collection?
15.如何向 Spring Bean 中注入一个 Java.util.Properties?
16.请解释 Spring Bean 的自动装配?
17.请解释自动装配模式的区别?
18.如何开启基于注解的自动装配?
19.请举例解释@Required 注解?
20.请举例解释@Autowired 注解?
21.请举例说明@Qualifier 注解?
22.构造方法注入和设值注入有什么区别?
23.Spring 框架中有哪些不同类型的事件?
24.FileSystemResource 和 ClassPathResource 有何区别?
在 FileSystemResource 中需要给出 spring-config.xml 文件在你项目中的相对路径或者绝对路径。在ClassPathResource中 spring 会在 ClassPath 中自动搜寻配置文件,所以要把ClassPathResource 文件放在 ClassPath 下。
如果将 spring-config.xml 保存在了 src 文件夹下的话,只需给出配置文件的名称即可,因为 src 文件夹是默认。
简而言之,ClassPathResource 在环境变量中读取配置文件,FileSystemResource 在配置文件中读取配置文件。
25.Spring 框架中都用到了哪些设计模式?
Spring 框架中使用到了大量的设计模式,下面列举了比较有代表性的:
26.谈谈你对 spring IOC 和 DI 的理解,它们有什么区别?
27.BeanFactory 接口和 ApplicationContext 接口有什么区别?
28.spring 配置 bean 实例化有哪些方式?
29.简单的说一下 spring 的生命周期?
30.请介绍一下 Spring 框架中 Bean 的生命周期和作用域
31.Bean 注入属性有哪几种方式?
spring 支持构造器注入和 setter 方法注构造器注入, 通过元素完成注入 setter 方法注入,通过元素完成注入【开发中常用方式】
32.什么是 AOP,AOP 的作用是什么?
33.Spring 的核心类有哪些,各有什么作用?
34.Spring 里面如何配置数据库驱动?
35.Spring 里面 applicationContext.xml 文件能不能改成其他文件名?
36.Spring 里面如何定义 hibernate mapping?
37.Spring 如何处理线程并发问题?
38.为什么要有事物传播行为?
39.介绍一下 Spring 的事物管理
40.通知有哪些类型?
没有人会讨厌和拒绝认真准备面试的人,所以不要认为面试就是必须用一个“素颜”的你去“真诚”的面对。
因文章篇幅问题,我这里没有全部进行解答,我已经整理打包成PDF文档,有需要的可以关注我的公众号【风平浪静如码】获取资料!
最后祝大家工作顺利,升职加薪,面试都能通过,offer拿到手软,早日找到心仪的工作~
部分资料展示
最后,用 Martin Fowler 的一句话作为结尾:「任何傻瓜都能写计算机能理解的代码,优秀的程序员编写人类能够理解的代码。」(Any fool can write code that a computer can understand. Good programmers write code that humans can understand)