主题采用next主题,这里主题的文件夹默认为next文件夹
Spring学习笔记之bean的生命周期
理解spring bean的生命周期对于细粒度的控制bean的创建、使用和销毁具有重要的意义,比如我们想要在一个bean创建之后做些额外的操作,合理的使用spring在生命周期中的调用方法,就可以轻易的完成这个任务,不过,首先,我们要理解bean在整个生命周期调用的方法链,才能正确的完成所需的功能。本文的目的是尝试使用实验的方式探索一个bean的生命周期。
Java并发系列笔记之阻塞队列
阻塞队列是Java并发中重要的并发容器,而且这个并发容器首先是队列,提供队列FIFO的特性,而且是这个队列是具有阻塞特性的,也就是说在队列满和队列空的情况下,会对添加线程和获取线程进行阻塞,以等待相应的同步状态释放,方法才得以返回。这种特性大有用武之地,比如典型的并发问题,生产者消费者问题,就可以将这种阻塞队列抽象出来,实现一种具有并发控制的容器,作为一种新的数据结构提供给应用层使用。
解析Arrays中sort方法的黑科技
排序问题是算法里面的经典问题,也是计算机学科数据结构课程里面的必修课,面对诸多的如插入排序,快速排序,堆排序,归并排序等等经典排序算法,JDK的实现者是如何选择排序算法的呢?我们经常使用的对数据进行排序的算法Arrays.sort,Collections.sort方法,那么具体它们是如何实现的呢,本文尝试从jdk 1.8的实现源码上进行分析,学习在实际工业环境下对排序算法的使用方法。
Java并发系列笔记之并发容器ConcurrentHashMap
Java并发系列笔记之Java中的锁
锁是多线程下进行同步互斥的重要实现依托,Java语言中除了提供了使用synchronized关键字提供的隐式锁,也提供了以Lock接口定义的显示锁。一般Lock的子类实现依赖于一个抽象队列同步器(AbstractQueuedSynchronizer, AQS)的子类实现。AQS的目的是提供对同步状态的获取和释放的基础同步功能给依赖者使用,而屏蔽了同步状态获取和释放的具体实现。AQS是一个抽象类,它使用模板模式定义获取和释放同步状态的模板方法,而将模板方法所依赖的获取同步,阻塞管理等其他方法交给需要不同并发策略的子类去实现。本文从AQS的具体实现讲起,接着分析不同锁机制的实现原理。