快速排序

本文介绍第二种交换排序方法:快速排序。算法思想快速排序是 C.R.A.Hoare 于 1962 年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的

希尔排序

ShellsortShellsort, also known as Shell sort or Shell's method,is an in-place comparison sort. It can be seen as either ageneralization of sorting by

深入学习Spring组件注册

接触过Spring的同学肯定都听过IOC。在传统的Java编程中,当需要用到某个对象的时候,我们都是主动显式创建一个对象实例(new)。使用Spring后就不需要这样做了,因为Spring会帮我们在需要用到某些对象的地方自动注入该对象,而无须我们自己去创建。这种模式俗称控制反转,即IOC(Inver

SpringCloud的核心之SpringBoot

Spring Ioc\DIIoc(Inversion of Control)和DI(Dependency Injection)的全称分别是控制反转和依赖注入。IocIoc(控制反转)实际上就是把对象的生命周期托管到Spring容器中,而反转是指对象的获取方式被反转了。当使用Spring Ioc容器之

深入解密来自未来的缓存-Caffeine

1.前言读这篇文章之前希望你能好好的阅读:你应该知道的缓存进化史和如何优雅的设计和使用缓存?。这两篇文章主要从一些实战上面去介绍如何去使用缓存。在这两篇文章中我都比较推荐Caffeine这款本地缓存去代替你的GuavaCache。本篇文章我将介绍Caffeine缓存的具体有哪些功能,以及内部的实现原

无锁队列Disruptor

1.何为队列听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不仅让这个超市崩溃,还会容易造成各种踩踏事件,当然这些事其实在我们现实中也是会经常发生。当然在计算机世界

我所理解的Java锁

为什么需要锁当并发地访问共享资源,如果不加以管理,其结果是混乱的。就如上图,双方均想改变方块的颜色,但在任意时刻,我们并不能确定方块接下来是什么颜色,因为我们无法确定谁的时间片最终改变了方块的颜色。显然,这样的不确定性对于程序来说是不能接受的。我们所期望的,是红色方先过后,方块成了红色。接着绿色方过

数组&链表必会核心知识

数组和链表是我们最常用也是最基本的数据结构,严格来说基础的数据结构就只有两种,就是数组和链表,其他的各种高阶的数据结构都是从数组和链表中衍生出来的,它们只是在不同的业务场景中根据数组或链表而衍生出来的解决方案。所以说数组和链表是一切数据结构的根本,我们完全有必要更深层次的理解这两种数据结构。如果你对