最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
IOC
:把对象的创建、初始化、销毁交给 spring 来管理,而不是由开发者控制,实现控制反转。
三、BeanFactory 和 ApplicationContext 有什么区别?
BeanFactory
可以理解为含有 bean 集合的工厂类。BeanFactory
包含了种 bean 的定义,以便在接收到客户端请求时将对应的 bean 实例化。
BeanFactory
还能在实例化对象的时生成协作类之间的关系。此举将 bean 自身与 bean 客户端的配置中解放出来。BeanFactory
还包含 了 bean 生命周期的控制,调用客户端的初始化方法(initialization methods
)和销毁方法(destruction methods
)。
从表面上看,application context
如同 bean factory
一样具有 bean 定义、bean 关联关系的设置,根据请求分发 bean 的功能。但 applicationcontext
在此基础上还提供了其他的功能。
- 提供了支持国际化的文本消息
- 统一的资源文件读取方式
- 已在监听器中注册的 bean 的事件
以下是三种较常见的 ApplicationContext
实现方式:
ClassPathXmlApplicationContext
:从classpath
的 XML 配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中
ApplicationContext context = new ClassPathXmlApplicationContext(“bean.xml”);
FileSystemXmlApplicationContext
:由文件系统中的 XML 配置文件读取上下文。
ApplicationContext context = new FileSystemXmlApplicationContext(“bean.xml”);
XmlWebApplicationContext
:由 Web 应用的 XML 文件读取上下文。AnnotationConfigApplicationContext
(基于 Java 配置启动容器)
本文仅供参考!
文章内容节选自《Spring面试专题及答案》需要的同学记得私信我免费获取!
四、Spring 有几种配置方式?
将 Spring 配置到应用开发中有以下三种方式:
- 基于 XML 的配置
- 基于注解的配置
- 基于 Java 的配置
五、请解释 Spring Bean 的生命周期?
Spring Bean
的生命周期简单易懂。在一个 bean 实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个 bean 不在被调用时需要进行相关的析构操作,并从 bean 容器中移除。
Spring bean factory
负责管理在 spring 容器中被创建的 bean 的生命周期。Bean 的生命周期由两组回调(call back)方法组成。
- 初始化之后调用的回调方法。
- 销毁之前调用的回调方法。
Spring 框架提供了以下四种方式来管理 bean 的生命周期事件:
InitializingBean
和DisposableBean
回调接口- 针对特殊行为的其他
Aware
接口 - Bean 配置文件中的
Custom init()
方法和destroy()
方法 @PostConstruct
和@PreDestroy
注解方式
使用 customInit()
和 customDestroy()
方法管理 bean 生命周期的代码样例如下:
六、什么是 Spring inner beans?
在 Spring 框架中,无论何时 bean 被使用时,当仅被调用了一个属性。一个明智的做法是将这个 bean 声明为内部 bean。内部 bean 可以用 setter 注入“属性”和构造方法注入“构造参数”的方式来实现。
比如,在我们的应用程序中,一个 Customer 类引用了一个 Person 类,我们的要做的是创建一个 Person 的实例,然后在 Customer 内部使用。
public class Customer{
private Person person;
//Setters and Getters
}
public class Person{
private String name;
private String address;
private int age;
//Setters and Getters
}
内部 bean 的声明方式如下:
七、请举例说明如何在 Spring 中注入一个 Java Collection?
Spring 提供了以下四种集合类的配置元素:
- : 该标签用来装配可重复的 list 值。
- : 该标签用来装配没有重复的 set 值。
- : 该标签支持注入键和值都是字符串类型的键值对。
下面看一下具体的例子:
INDIA Pakistan USA UK INDIA Pakistan USA UK admin@nospam.com support@nospam.com总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
-B2LT9aDT-1715813086416)]