JDK源码
Dm同学
博观而约取
展开
-
【多线程】创建线程的三种方式
进程与线程的区别进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。举一个在博客中看到的例子。 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。 一个车间里,可以有很多工人。他们协同完成一个任务。 线程就好比车间里的工人。一个进程可以包括多个线程。车间的空间是工人们原创 2016-08-15 21:22:29 · 1401 阅读 · 2 评论 -
【集合详解】ArrayList源码解读之动态扩容
ArrayList 概述ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。ArrayList不是线程安全的,只能用在单线程环境下。实现了Serializable接口,因此它支持序列化,能够通过序列化传输;实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问;实现了Cloneable接口,能被克隆。本文我们主要了解Arraylist如何原创 2016-07-30 16:15:35 · 4535 阅读 · 3 评论 -
【集合详解】TreeSet源码解析
TreeSet概述所有实现的接口:Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>以下是类的对应关系。从左到右分析上图: 实现Serializable接口,即支持序列化。 实现Cloneable接口,即能被克隆。 实现Iterable接口,即能用foreach使用原创 2016-08-02 17:35:11 · 3047 阅读 · 2 评论 -
【集合详解】TreeSet源码解析及自定义排序
上篇博客中,我们已经了解到TreeSet为有序集合,按照Comparator接口定义的排序顺序进行排序。一些基础类型,都已经实现了该接口,默认是按照自然排序进行排列。而我们自定义类型需要手动实现接口。测试首先我们来做一个测试。测试TreeSet的排序功能。用例一:在集合中添加了四个元素 输出结果是:ABCD用例二:颠倒顺序 输出结果是:ABCD 所以TreeSet的默认顺序并不是按照装入集原创 2016-08-02 17:54:24 · 1095 阅读 · 1 评论 -
【集合详解】HashMap源码解析
一、HashMap概述 二、HashMap的数据结构 三、HashMap源码分析 1.继承 2、关键属性 3、结构 4、构造函数 5、扩原创 2016-08-15 19:03:22 · 1806 阅读 · 9 评论