死磕 java集合之HashSet源码分析

问题(1)集合(Collection)和集合(Set)有什么区别?(2)HashSet怎么保证添加元素不重复?(3)HashSet是否允许null元素?(4)HashSet是有序的吗?(5)HashSet是同步的吗?(6)什么是fail-fast?简介集合,这个概念有点模糊。广义上来讲,java中的集合是指java.util包下面的容器类,包括和Collection及Map相关的所有...

死磕Tomcat系列(2)——EndPoint源码解析

死磕Tomcat系列(2)——EndPoint源码解析在上一节中我们描述了Tomcat的整体架构,我们知道了Tomcat分为两个大组件,一个连接器和一个容器。而我们这次要讲的EndPoint的组件就是属于连接器里面的。它是一个通信的端点,就是负责对外实现TCP/IP协议。EndPoint是个接口,它的具体实现类就是AbstractEndpoint,而AbstractEndpoint具体的实现类就有A...

死磕 java同步系列之StampedLock源码解析

ryConvertToXxx()方法;(14)前者写锁不可重入,后者写锁可重入;(15)前者无法实现条件锁,后者可以实现条件锁;差不多就这么多吧,如果你还能想到,也欢迎补充哦^^推荐阅读1、死磕 java同步系列之开篇2、死磕 java魔法类之Unsafe解析3、死磕 java同步系列之JMM(Java Memory Model)4、死磕 java同步系列之volatile解析5、死...

死磕 java同步系列之CountDownLatch源码解析

in()是在主线程中调用的,它只能等待被调用的线程结束了才会通知主线程,而CountDownLatch则不同,它的countDown()方法可以在线程执行的任意时刻调用,灵活性更大。推荐阅读1、 死磕 java同步系列之开篇2、 死磕 java魔法类之Unsafe解析3、 死磕 java同步系列之JMM(Java Memory Model)4、 死磕 java同步系列之volatile解析...

死磕 java同步系列之Semaphore源码解析

e) { // todo 处理异常 e.printStackTrace(); } finally { SEMAPHORE.release(); } return true; }} 推荐阅读1、 死磕 java同步系列之开篇2、 死磕 java魔法类之Unsafe解析3、 死磕 java同步系列之JMM(Java Memory Model)4、 死磕 java同步系列之volatile解析...

死磕Tomcat系列(1)——整体架构

死磕Tomcat系列(1)——整体架构在许多的高端开发的岗位中都会或多或少有要求面试人员要研究过一些常用中间件源码。这是因为一切的秘密都是藏在源码中,阅读源码能够让我们对框架或者中间件的理解更加深刻,而我们也能够在源码的研究中获得其中一些优秀的设计方式。而我们的中间件和源码那么多,我们该从何入手呢?其实大部分的中间件或者框架都有一些共性的部分,例如网络编程、多线程、反射和类加载等技术。所以深入研究透...

死磕 java同步系列之ReentrantLock VS synchronized——结果可能跟你想的不一样

的ConcurrentHashMap中已经把ReentrantLock换成了synchronized来分段加锁了,这也是Java版本不断升级带来的免费的synchronized的性能提升。推荐阅读 死磕 java同步系列之ReentrantLock源码解析(二)——条件锁 死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁 死磕 java同步系列之AQS起篇 死磕 ...

死磕 java同步系列之ReentrantLock源码解析(二)——条件锁

entrantLock呢?首先,它们都是可重入锁;其次,它们都默认是非公平模式;然后,...,呃,我们下一章继续深入探讨 ReentrantLock VS synchronized。推荐阅读 死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁 死磕 java同步系列之AQS起篇 死磕 java同步系列之自己动手写一个锁Lock 死磕 java魔法类之Unsaf...

死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁

// 底层调用的是Unsafe的park()方法 LockSupport.park(this); // 返回是否已中断 return Thread.interrupted();} 看过之前彤哥写的【死磕 java同步系列之自己动手写一个锁Lock】的同学看今天这个加锁过程应该思路会比较清晰。下面我们看一下主要方法的调用关系,可以跟着我的 → 层级在脑海中大概过一遍每个方法的主要代码:Reentr...

死磕 java集合之DelayQueue源码分析

ition(); 从属性我们可以知道,延时队列主要使用优先级队列来实现,并辅以重入锁和条件来控制并发安全。因为优先级队列是无界的,所以这里只需要一个条件就可以了。还记得优先级队列吗?点击链接直达【死磕 java集合之PriorityQueue源码分析】主要构造方法public DelayQueue() {} public DelayQueue(Collection<? extends E> c...
关于我们 联系我们 友情链接 LMLPHP后院 
本站由 LMLPHP 强力驱动 ©2014-2019 LMLPHP 耗时0.043731(s)
2019-08-24 08:17:21 1566605841