摘要: 1、在创建ioc容器前的准备工作 准备刷新前的工作 1)、记录启动时间 2)、设置容器关闭状态 3)、设置容器活跃状态 4)、初始化属性源(本类是空实现,在子类中比如staticWebApplicationContext中会对servlet资源进行初始化) 5)、验证必须的属性 我们可以自己实现一个 阅读全文
posted @ 2022-07-06 23:59 搬砖党路过 阅读(48) 评论(0) 推荐(0) 编辑
摘要: bean的创建大体流程如下图(当然中间还省略的很多步骤) 1、bean是放在ioc容器中的,所有首先得有一个承载bean的容器beanFactory 2、有了容器之后,就可以开始解析bean的定义信息,解析bean的定义信息也是在obtainFreshBeanFactory这个方法中完成的 load 阅读全文
posted @ 2022-07-05 23:54 搬砖党路过 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1、什么是循环依赖 在spring对bean的管理中,如何出现如下两个类:A类中有属性B,B类中中属性A;在单例模式下就会产生循环依赖问题,为什么会产生循环依赖问题,与spring的设计有关,跟bean的创建流程息息相关。 2、简单描述bean的创建过程 下图是bean创建的一个大体流程,先实例化b 阅读全文
posted @ 2022-04-26 22:55 搬砖党路过 阅读(2738) 评论(0) 推荐(0) 编辑
摘要: 在spring容器启动的时候,会加载bean的定义信息,在解析bean信息之前呢,会创建一个实体解析器(主要目的是为加载spring解析的配置节点对象以xml为例,就是一些dtd或者xsd的规范) 在idea里debug跟踪的时候依次会看到去创建一个可插拔式的解析器PluggableSchemaRe 阅读全文
posted @ 2022-04-18 21:36 搬砖党路过 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 请简单阐述一下对象的创建过程? 先看一张图 main方法中创建了两个对象执行过程在右边字节码中展示完全一致new、dup、invokespecial、astore四个步骤 1、new,虚拟机指令为对象分配内存并在栈顶压入了指向这段内存的地址供后续操作来调用 2、dup,其实就是一个复制操作,其作用是 阅读全文
posted @ 2022-04-06 23:36 搬砖党路过 阅读(308) 评论(0) 推荐(0) 编辑
摘要: CPU为了提高执行效率,会在一条指令执行的过程中(比如去内存读数据,读数据的过程相较于CPU的执行速度慢100倍以上,cpu处于等待状态),这个时候cpu会分析接下来的指令是否正在执行的指令相关联,如果不相关,那么cpu就会去执行接下来的指令,这就是造成cpu执行指令乱序问题的原因。 怎么证明cpu 阅读全文
posted @ 2022-03-30 21:41 搬砖党路过 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 我们都知道Map的一大特性是key唯一不可重复,可是真的是这样的吗? 我们来试验一下: 运行结果: 我们可以看到在map里有两个同样的person作为key,打破了map的key不可重复的特性。 我们平时操作map一般不会出现这样的结果,怎样操作会出现上述的现象呢? 1、首先有前提条件,作为key的 阅读全文
posted @ 2022-03-23 22:29 搬砖党路过 阅读(3745) 评论(0) 推荐(1) 编辑