我是攻城师

429 篇文章
50 人订阅

全部文章

我是攻城师

理解Linux里面的IO模型

User space(用户空间)和 Kernel space(内核空间)。Linux里面这么设计的目的主要是为了安全,即使用户空间崩溃了,内核也不受影响。所以在...

293
我是攻城师

深入理解Java类加载器机制

Java里面的类加载机制,可以说是Java虚拟机核心组件之一,掌握和理解JVM虚拟机的架构,将有助于我们站在底层原理的角度上来理解Java语言,这也是为什么我们...

312
我是攻城师

理解ClassNotFoundException与NoClassDefFoundError的区别

但是你知道他们的区别吗?以及什么情况下发生上面的异常? 如果你还不清楚,那么不着急,我们来仔细分析一下:

322
我是攻城师

理解JVM垃圾回收的机制

其中(1)和(2)我们在之前已经介绍过了,今天我们来学习一下关于JVM垃圾回收(Garbage Collection)的内容:

191
我是攻城师

理解计数排序算法的原理和实现

计数排序(Counting sort)是一种稳定的线性时间排序算法,其平均时间复杂度和空间复杂度为O(n+k),其中n为数组元素的个数,k为待排序数组里面的最大...

211
我是攻城师

理解Java里面的代理模式

代理模式是23种设计模式中非常经典的一种模式,在日常生活中到处充满了代理模式的痕迹,常见的比如火车代售点买票,各种公共服务大厅,以及各种网上购物平台其实都可以看...

291
我是攻城师

理解递归算法的原理

递归(Recursion)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。 递归式方法可以被用于解决很多的计算机科...

271
我是攻城师

理解桶排序算法原理

计数排序,基数排序,桶排序是所有排序算法里面时间复杂度能达到O(N)级别的算法,这主要原因是因为他们不采用基于比较的算法,前面的文章已经介绍了计数排序的原理,本...

564
我是攻城师

理解Java8的数据类型和运行时数据区域

Java虚拟机包含对对象的显式支持,对象要么是动态分配的类实例,要么是静态数组,对对象的引用我们可以叫做指针或者引用,一个对象可以有多个引用,对象总是通过引用的...

393
我是攻城师

理解Java并发工具包线程池的设计

创建线程的流程依赖底层的操作系统,不同的操作系统可能不一样,此外更多的线程意味着 OS调度需要做更多的工作来决定哪一个线程可以访问资源,并且要通过OS调度切换维...

732
我是攻城师

为什么快速排序算法效率比较高?

快速排序算法是非常高效的一个排序算法,在众多的排序算法里面其无论在时间复杂度还是空间复杂度都是比较低的。因此作为一个程序员,我们很有必要学习和理解快排的原理。

923
我是攻城师

理解算法的复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间,时间复杂度常用大O符号表示,不包括这个函数的低阶和首项系数,使用这种方式时,时间的复杂度...

702
我是攻城师

理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略

(2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路

1094
我是攻城师

理解Java8并发工具类ConcurrentHashMap的实现

前面的文章已经分析过List和Queue相关的接口与并发实现类,本篇我们来分析一下非常Java里面非常重要的一个数据结构HashMap。(注意Set类型在这里我...

662
我是攻城师

理解另类的并发安全实现CopyOnWriteArrayList

在Java的并发包java.util.concurrent里面有一个比较有意思现象,针对Map和LinkList都有对应的高效的+线程安全的并发实现类:

793
我是攻城师

解读Java阻塞队列BlockingQueue的实现

上篇文章我们介绍了队列的基类接口Queue它定义了所有实现队列的类必须拥有的方法行为而BlockingQueue阻塞队列接口继承了Queue接口,此外Block...

792
我是攻城师

理解Java队列接口Queue的设计

Queue接口不属于Java并发包下面的类,它是java.util下面的一个接口,虽然这个接口跟并发没有直接关系,但是它抽象和定义了在Java里面队列的通用方法...

663
我是攻城师

理解Java并发工具类SynchronousQueue

SynchronousQueue类是JDK5中引入的一个同步队列,这个类比较特殊,因为它虽然是一个队列但实际上并不真正的存储数据,仅仅维护一个线程配对的队列列表...

892
我是攻城师

理解Java并发工具类Exchanger

Exchanger类是JDK5中的一个并发工具辅助类,这个类的主要作用是可以用于两个线程之间交换数据,以实际生活中的场景来讲,比如很多小区楼下都有自取的快递柜,...

542
我是攻城师

理解Java并发工具类Phaser

Phaser(移相器,一种电子元件)是JDK7中引入的新的并发工具辅助类,oralce官网文档描述Phaser是一个可重复使用的同步栅栏,功能上与 CountD...

1095

扫码关注云+社区