摘要:
什么是SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。 API (Application Programming Interface)在 阅读全文
摘要:
源起 最近看log4j2源码发现PropertiesUtil类被用于获取配置信息(封装为PropertySource类),可以用于获取日志工厂的类名和配置工厂的类名等属性,log4j2默认为我们提供了以下实现类 PropertiesPropertySource:加载classpath:log4j2. 阅读全文
摘要:
put与putIfAbsent的区别: 如果放入数据的key不在Map中,他俩是一样的,并且都会返回null。 如果放入数据的key存在Map中,put会把之前的给替换掉,返回之前的值。putIfAbsent不会把之前的给替换掉,也是返回之前的值。 总之就一句话,没有重复的他俩是一样的,有重复的pu 阅读全文
摘要:
简介 在JUC包下提供了很多线程安全的队列,通常称之为阻塞队列。这些阻塞队列在线程池中的应用十分广泛,搞懂阻塞队列的实现原理,对平时使用阻塞队列会有很大帮助。本文将结合源码主要分析下LinkedBlockingQueue这个阻塞队列的实现原理。 LinkedBlockingQueue是一个基于链表实 阅读全文
摘要:
现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能: 都需要访问/使用同一种资源 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务 这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题 阅读全文