摘要: 1、数据结构相关的类,如String、ArrayList,LinkedList,HashMap和ConcurrentHashMap等等。2、线程并发相关的类,如Synchronized、ReentrantLock、ReadWriteLock、AQS和线程池的实现等。 阅读全文
posted @ 2018-04-18 16:32 Entropy_lxl 阅读(594) 评论(0) 推荐(0) 编辑
摘要: ArrayList (数组链表)使用Object数组作为存储。 默认构造函数为: 构造一个空的链表,该链表没有进行初始化,在调用其add()方法时,进行了初始化: ensureCapacityInternal()方法是 get()方法: 阅读全文
posted @ 2018-04-19 16:50 Entropy_lxl 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 1. String是使用char[]数组来存储的,并且String值在创建之后就不可以改变了。char[]数组的定义为: char[]数组value使用final修饰,因此赋值之后就不可以改变了。再看一下String的hashCode()方法的实现就更能说明这一点: 成员变量hash,用来缓存Str 阅读全文
posted @ 2018-04-19 11:24 Entropy_lxl 阅读(818) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap (JDK 1.7)的继承关系如下: 1. ConcurrentHashMap是线程安全的hash map。ConcurrentHashMap的数据结构是一个Segment<K, V>数组: 其中,HashEntry的定义如下: 因此,Segment数组的意义就是将 阅读全文
posted @ 2018-04-12 17:52 Entropy_lxl 阅读(286) 评论(0) 推荐(0) 编辑
摘要: HashTable继承关系如下: HashTable是一个线程安全的【键-值对】存储结构。其存储结构和HashMap相同,参考这里。 1. HashTable定义了一个类型为Entry<K,V>的数组table用来存储数据。 类型Entry<K,V>的定义如下: 由Entry<K,V>的定义可知,上 阅读全文
posted @ 2018-04-12 16:51 Entropy_lxl 阅读(274) 评论(0) 推荐(0) 编辑
摘要: HashSet (jdk 1.7)的继承关系如下: HashSet是使用HashMap实现的一个没有重复元素的集合。HashSet用法如下: 从HashSet的add()方法可以看出,只有一个参数,并没有【键-值对】。 其实是HashSet只使用了HashMap的key,value统一是一个固定的O 阅读全文
posted @ 2018-04-12 15:41 Entropy_lxl 阅读(191) 评论(0) 推荐(0) 编辑
摘要: hashmap (jdk 1.7)使用 “数组-链表” 方式进行存储,图形化表示如下: 即,前面是一个数组,后面跟一个链表,那么数据结构这个对应到HashMap的代码里面是什么样子的呢? 在HashMap中定义了一个类型为Entry<K,V>的数组table,上图就是显示了这个table。 类型En 阅读全文
posted @ 2018-04-10 18:06 Entropy_lxl 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 一、进程进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 注意,进程一般有三个状态:就绪状态、执行状态和等待状态【或称阻塞状态】;进程只能由父进程建立,系统中所有的进程形成一种进程树的层次体系;挂起命令可由进程自己和其他进程发出 阅读全文
posted @ 2018-03-25 11:01 Entropy_lxl 阅读(310) 评论(0) 推荐(0) 编辑
摘要: lsof 是什么意思? 答: list open files 查看某个文件被哪些进程在读写 lsof 文件名查看某个进程打开了哪些文件lsof –c 进程名lsof –p 进程号lsof用法小全 lsof +d /usr/local/ 显示目录下被进程开启的文件lsof +D /usr/local/ 阅读全文
posted @ 2018-03-06 10:28 Entropy_lxl 阅读(8087) 评论(0) 推荐(0) 编辑
摘要: 1. 使用ReentrantLock 结果为: 阅读全文
posted @ 2018-03-01 09:19 Entropy_lxl 阅读(199) 评论(0) 推荐(0) 编辑