Java 多线程
Java 多线程 多线程概述 概述:它允许同时执行多个线程(即程序的执行路径),从而提高程序的效率和响应能力。Java提供了多线程的原生支持,主要通过java.lang.Thread类和java.util.concurrent包来实现。 并发和并行 并行:在同一时刻,多个指令在多个CPU上同时执行; 并发:在同一时刻,多个指令在单个CPU上交替执行; 进程和线程 ...
Java 多线程 多线程概述 概述:它允许同时执行多个线程(即程序的执行路径),从而提高程序的效率和响应能力。Java提供了多线程的原生支持,主要通过java.lang.Thread类和java.util.concurrent包来实现。 并发和并行 并行:在同一时刻,多个指令在多个CPU上同时执行; 并发:在同一时刻,多个指令在单个CPU上交替执行; 进程和线程 ...
多线程 面试题 线程有那些状态 Java 多线程状态分为六种 操作系统层面有五种状态 线程池的核心参数 ThreadPoolExecutor 构造函数参数 corePoolSize: 核心线程数目 最多保留的线程数 maximumPoolSize: 最大线程数目 核心线程 +...
Spring Boot填充容器 填充容器,即:自动装配Bean 第一步:通过prepareRefresh()方法,在已有的系统环境 **基础上,准备SERVLET相关的环境Environment,其他的环境在上篇第二大阶段环境准备** 中就已经注册完成了,通过初始化属性资源 initServletPropertySources()方法,对Servlet初始化参数 ...
Spring AOP 原理 切面类 只需要新建一个类,为它增加AOP切面注解@Aspect就可以使用,在里面定义一些增强方法,然后通过@Before、@After、@AfterReturning、@AfterThrowing、@Round注解来指定何时执行方法的增强,在方法之前,方法之后、方法正常返回后、在方法异常返回后、对方法进行包裹;在这5个注解中使用executio...
Spring Boot启动流程 1. 大概步骤 Spring Boot 的启动流程可以概括为以下几个主要步骤: 初始化SpringApplication: 创建 SpringApplication 实例,它负责启动 Spring 应用。 运行SpringApplication.run(): 调用 SpringAppl...
常见集合 Java 集合类主要由两个接口Collection和Map派生出来,Collection有三个子接口:List、Set、Queue。 List 集合 List 是一个接口,属于 Java 集合框架(Java Collections Framework)的一部分,用于存储一系列元素。List 接口继承自 Collection 接口,提供了一些额外的功能,比如元素的有序性(元素...
1. 什么是Spring循环依赖 循环依赖是多个Bean之间,相互持有对方的引用,比较典型的场景有三种: 自我依赖 相互依赖 多个Bean之间的依赖。 如:A依赖B,B依赖C,……,N依赖A。 多个Bean直接相互持有对方的引用,从而无法完成Bean的创建。 2. Spring是如何解决循环依赖...
源码 public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry { // 一级缓存:完全初始化的单例Bean存储 Map<String, Object> singletonObjects = new Concurr...
Spring 中支持使用 @Autowired,@Resource,@Inject三个注解来实现属性的依赖注入 @Autowired 源码 @Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})...
Bean 生命周期流程 在Spring 容器启动过程中,会调用AbstractApplicationContext类中refresh(),该方法是 Spring 容器启动的核心方法。其中,Spring Bean 的创建就是在该方法中的finishBeanFactoryInitialization()中进行的,在 Spring Bean 的创建之前,其实 Spring 在refre...