java面试题
文章平均质量分 82
qq_40046779
这个作者很懒,什么都没留下…
展开
-
面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize = olesize2+1计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMa...转载 2018-12-04 13:39:40 · 125 阅读 · 0 评论 -
JAVA锁有哪些种类
其实如果按照名称来说,锁大概有以下名词:自旋锁 ,自旋锁的其他种类,阻塞锁,可重入锁 ,读写锁 ,互斥锁 ,悲观锁 ,乐观锁 ,公平锁 ,偏向锁, 对象锁,线程锁,锁粗化, 锁消除,轻量级锁,重量级锁, 信号量,独享锁,共享锁,分段锁我们所说的锁的分类其实应该按照锁的特性和设计来划分概述其实从并发的角度来讲,按照线程安全的三种策略看,主要内容都集中在互斥同步里,我们所讨论的锁也集中在这个部...转载 2018-12-04 14:21:16 · 225 阅读 · 0 评论 -
Java线程池参数
关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法。希望能对多线程开发学习的童鞋有些启发和帮助。一、Threa关于Java线程池的参数关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设...原创 2018-12-04 15:23:17 · 467 阅读 · 2 评论 -
java中产生死锁的原因及如何避免
Java中导致死锁的原因Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中的死锁往往比这个复杂的多。可能会有多个线程形成了一个死锁的环路,比如:线程T1持有锁L1并且申请获得锁L2,而线程T2持有锁...转载 2018-12-05 10:10:15 · 171 阅读 · 0 评论 -
分布式系统一致性(ACID、CAP、BASE、二段提交、三段提交、TCC、幂等性)原理详解
本文内容属于分布式事物处理范畴,强调强一致性与区块链倡导的共识一致性略有不同,主要是最近以太坊ico导致交易拥堵问题引起我的思考,是不是有可能利用已有的解决方案进行演变增加每个节点的提交时的一致性,简单来讲就是在p2p网络中实现部分强一致性,提升区块链交易性能,文中TCC就是一种演变思路,很受启发,希望有高人给予这方面的指点;本文是我寻找资料时发现的一篇不错的文章,当做扩展思路也是不错的。国际开...原创 2018-12-05 11:09:08 · 3004 阅读 · 1 评论