上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页
摘要: HashSet底层是HashMap实现的,关于HashMap的分析请移步到HashMap源码分析 属性 HashSet底层是使用HashMap实现的,由于HashMap存储的是<Key,Value>键值对,而HashSet不需要Value,所以HashSet内部使用了一个虚拟的Object对象作为底 阅读全文
posted @ 2019-01-19 14:44 静水楼台/Java部落阁 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 在Java运行时数据区总结了虚拟机内存的概况,本文介绍虚拟机内存中的数据的其它细节,如对象如何创建、如何布局以及如何访问。该篇总结HotSpot虚拟机在Java堆中对象的分配、布局和访问的全过程。 一、对象的创建 1.分配内存 在Java语言层面,创建对象仅仅需要一个new关键字即可。实际上Java 阅读全文
posted @ 2019-01-12 18:11 静水楼台/Java部落阁 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 版本说明:jdk1.7.0_79 概述 Hashtable已经成为过时的集合,但是仍有必要研究一下其源码,而且面试中也经常被问到Hashtable与HashMap的区别。Hashtable是线程安全的,但是Collections类中已经针对集合的线程安全有了新的实现,如果考虑到线程安全,请使用Col 阅读全文
posted @ 2019-01-09 14:12 静水楼台/Java部落阁 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Innodb中的事务隔离级别和锁的关系 官方文档:InnoDB Locking and Transaction Model 本文主要介绍事务的特性、事务并发可能导致的问题、数据库锁机制、事务的隔离级别。 一、事务的ACID特性 事务具有4个特性:原子性、一致性、隔离性、持久性,这4个特性简称为ACI 阅读全文
posted @ 2019-01-04 16:57 静水楼台/Java部落阁 阅读(378) 评论(0) 推荐(0) 编辑
摘要: AbstractQueuedSynchronizer,简称为AQS,它是构建JDK中多个并发工具的基础。下图展示了JDK中使用AQS构建的并发工具。 可见,AQS在Java并发编程中是多么的重要。所以,我们有必要搞清楚其实现的原理。 一、AQS中的数据结构 在AQS类文件的注释中,作者已经给出了内部 阅读全文
posted @ 2019-01-03 15:14 静水楼台/Java部落阁 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 基于jdk1.7源码 一、无锁容器 CopyOnWriteArrayList是JDK5中添加的新的容器,除此之外,还有CopyOnWriteArraySet、ConcurrentHahshMap和ConcurrentLinkedQueue等,它们都是无锁容器。 所谓无锁,就是不需要使用对象内置锁(s 阅读全文
posted @ 2018-12-13 18:28 静水楼台/Java部落阁 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 说明:本文基于jdk1.7源码 LinkedList 是一个双向链表,它也可以被当作栈、队列(Queue)或双端队列(Deque)进行操作。LinkedList随机访问效率低,但随机插入和删除效率高。 LinkedList是基于链表实现的,链表中节点定义如下。 Node 每个节点由prev指针,ne 阅读全文
posted @ 2018-12-13 18:22 静水楼台/Java部落阁 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Vector与ArrayList底层实现基本类似,底层都是用数组实现的,最大的不同是Vector是线程安全的。ArrayList源码分析请参考ArrayList源码分析 一、源码分析 基于jdk1.7源码 属性 Vector多了一个capacityIncrement属性。当Vector需要扩容时,增 阅读全文
posted @ 2018-12-13 18:16 静水楼台/Java部落阁 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 基于jdk1.7源码 一、源码分析 属性 ①DEFAULT_CAPACITY:默认初始容量为10。 ②EMPTY_ELEMENTDATA:表示空数组, Arraylist在刚创建时通常是一个空数组,不含任何元素,如果一次创建了 ③elementData:是用来缓存元素的数组,该属性被声明为trans 阅读全文
posted @ 2018-12-13 18:02 静水楼台/Java部落阁 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 内置锁是jvm内部支持的,使用时不需要显示的加锁和释放锁,因此内置锁也被称为隐式锁。而重入锁使用时需要显式的加锁和释放锁,因此属于显式锁。 一、重入锁概述 重入锁是JDK1.5引入的,作为一种线程同步机制,其作用与内置锁相同,但并不是用来替代内置锁的。但它提供了一些内置锁不具备的特性。在java中使 阅读全文
posted @ 2018-12-12 18:27 静水楼台/Java部落阁 阅读(286) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页