`
文章列表
Dubbo  SPI的思想 --->!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下),     jdk通过ServiceLoader类实现spi机制的服务查找功能。 我们来看下jdk是如何实现:        JDK实现SPI服务查找: ServiceLoader。 package com.test; public interface SPI {        String sayHello(); } ServiceLoader会遍历所有jar查找META-INF/se ...
线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:1、降低资源消耗;2、提高响应速度;3、提高线程的可管理性。 Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池,而不用关心该任务是如何执行、被哪个线程执行,以及什么时候执行。   1、Executors.newFixedThreadPool(20)初始化一个包含20个线程的线程池executor;2、通过executor.execute方法提交20个任务,每个任务打印当前的线程名;3、负责执行 ...
概述 JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理.   或许大家已经知道如下相关的知识. system.gc其实是做一次full gc system.gc会暂停整个进程 system.gc一般情况下我们要禁掉,使用-XX:+DisableExplicitGC system.gc在cms gc下我们通过-XX:+ExplicitGCInvokesConcurren ...
Spring IOC(控制反转)与DI (依赖注入) IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。 Spring所倡导的开发方式就是如此,所有 ...
1.由于大家平常用Spring基本都是Web项目中,那么今天就从Web的角度来看看IOC容器是怎么启动并管理Bean的。 2.本文及后续代码版本:Spring3.0.5。所以如发现代码(或图)不一致请注意Spring版本。 3.还是建议大家在前几遍读源码的时候,先把路走通,再回头研究细节。 Web容器接口体系 为了方便在Web环境中使用IOC容器,spring为Web应用提供了上下文接口WebApplicationContext来满足启动过程的需要。这个WebApplicationContext接口的类层次关系如图所示: 在接口设计中,最后是通过ApplicationContext接 ...
jdk1.8之前HashMap实现原理 1,HashMap的数据结构      数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组      数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数   组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。 哈希表 那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈
Global site tag (gtag.js) - Google Analytics