源码解析
文章平均质量分 68
zhongxiangbo
这个作者很懒,什么都没留下…
展开
-
ThreadPoolExecutor线程池及线程扩展策略
一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。同时可以根据自己的需求实现自己的线程池原创 2017-04-28 08:28:28 · 4103 阅读 · 0 评论 -
Spring 框架面试题总结
一. 什么是Spring?答:spring的核心是一个轻量级的容器(Container),它是实现IoC(Inversion of Control)容器和非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented Programming)的实现方式,提供对持久层(Persistence)、事务(Transcation)的支持;提供MVC Web框架的实现,转载 2017-04-27 16:27:31 · 2539 阅读 · 0 评论 -
源码解析-集合-ConcurrentHashMap
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2017-05-01 10:42:48 · 242 阅读 · 0 评论 -
源码解析-集合-Arrays
一、Arrays.sort()数组排序Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。 1、对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排转载 2017-05-01 10:41:51 · 280 阅读 · 0 评论 -
源码解析-集合-LinkedList
一、源码解析 1、 LinkedList类定义。 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable LinkedList 是一个继承于AbstractSequ转载 2017-05-01 10:40:49 · 219 阅读 · 0 评论 -
源码解析-集合-HashSet
一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比转载 2017-05-01 10:39:47 · 217 阅读 · 0 评论 -
源码解析-集合-ArrayList
一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurr转载 2017-05-01 10:38:25 · 245 阅读 · 0 评论 -
源码解析-集合-HashMap
一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Co转载 2017-05-01 09:13:28 · 265 阅读 · 0 评论 -
ThreadPoolExecutor中BlockingQueue的三种实现及排队策略
1、ThreadPoolExecutor的构建参数 最近发现几起对ThreadPoolExecutor的误用,其中包括自己,发现都是因为没有仔细看注释和内部运转机制,想当然的揣测参数导致,先看一下新建一个ThreadPoolExecutor的构建参数:[java] view plaincopypublic Thre转载 2017-04-28 08:38:24 · 4424 阅读 · 1 评论 -
源码-Integer的缓存
本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一些小陷阱,这也是我们写这篇文章的原因。[java] view原创 2017-04-27 23:22:30 · 296 阅读 · 0 评论