YXL
欢迎来到我的Blog

最新推荐
最新文章

JVM垃圾收集器与内存分配策略

说起垃圾收集器 (Garbage Collection,下文简称GC),Java 内存区域的各个部分,其中 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此 这几个区域的内存分配和回收都具备确定性,在这个区域内就不需要过多的考虑如何回收的问题,当方法结束或者......

排序算法 - 快速排序

同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和 交换位置来达到排序的目的。 不同的是,冒泡排序在每一轮中只把1个元素冒泡到数列的一端,而快速排序则在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆分成两个部分。......

排序算法 -鸡尾酒排序

鸡尾酒排序是冒泡排序的一种,又称为来回排序。它比冒泡排序要高级点, 冒泡排序的每一个元素都可以像小气泡一样,根据自身大小,一点一点地向着数组的一侧移动。算法的每一轮都是从左到右来比较元素,进行单向的位置交换。而鸡尾酒排序元素比较和交换过程是双向的。......

排序算法 - 冒泡排序

冒泡排序是一种非常主流的排序算法,冒泡排序的英文(Bubble sort),它是一种基础的交换排序。......

Java内存区域

Java 与 C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里 面的人却想出来。......

AQS原理解析

AQS 是一个提供用于实现阻塞锁和同步器框架,依靠 先入先出 (FIFO) 等待队列,该队列就是 CLH 同步队列,遵循 FIFO 原则 ,比如我们提到的 ReentrantLock , ReentranSemaphoretLock 等......

JUC中的Atomic原子类

不可分割的 一个操作是不可中断的,即使多线程的情况下也可以保证, 即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 原子类的作用和锁类似,是为了保证并发情况下线程安全,不过相比于锁,更有优势......

深入Java线程池

线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程并不会被销毁,而是仍然在线程池中等待下一个任务。 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来以下下好处......

JDK1.8中HashMap集合源码解析

HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。 JDK1.8 之后 HashMap 的组成多了红黑树,在满足下面两个条件之后,会执行链表转红黑树操作,以此来加快搜索速度。 HashMap是线程......

ThreadLocal 源码分析

ThreadLocal提高一个线程的局部变量,访问某个线程拥有自己局部变量。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。......

1 / 12