摘要:
HashSet底层是HashMap实现的,关于HashMap的分析请移步到HashMap源码分析 属性 HashSet底层是使用HashMap实现的,由于HashMap存储的是<Key,Value>键值对,而HashSet不需要Value,所以HashSet内部使用了一个虚拟的Object对象作为底 阅读全文
摘要:
在Java运行时数据区总结了虚拟机内存的概况,本文介绍虚拟机内存中的数据的其它细节,如对象如何创建、如何布局以及如何访问。该篇总结HotSpot虚拟机在Java堆中对象的分配、布局和访问的全过程。 一、对象的创建 1.分配内存 在Java语言层面,创建对象仅仅需要一个new关键字即可。实际上Java 阅读全文
摘要:
版本说明:jdk1.7.0_79 概述 Hashtable已经成为过时的集合,但是仍有必要研究一下其源码,而且面试中也经常被问到Hashtable与HashMap的区别。Hashtable是线程安全的,但是Collections类中已经针对集合的线程安全有了新的实现,如果考虑到线程安全,请使用Col 阅读全文
摘要:
Innodb中的事务隔离级别和锁的关系 官方文档:InnoDB Locking and Transaction Model 本文主要介绍事务的特性、事务并发可能导致的问题、数据库锁机制、事务的隔离级别。 一、事务的ACID特性 事务具有4个特性:原子性、一致性、隔离性、持久性,这4个特性简称为ACI 阅读全文
摘要:
AbstractQueuedSynchronizer,简称为AQS,它是构建JDK中多个并发工具的基础。下图展示了JDK中使用AQS构建的并发工具。 可见,AQS在Java并发编程中是多么的重要。所以,我们有必要搞清楚其实现的原理。 一、AQS中的数据结构 在AQS类文件的注释中,作者已经给出了内部 阅读全文