图解 Java 中的可重入锁与非可重入锁

herman 7年前 (2018-11-22) 3118浏览

写锁呢就不可避免的要说可重入锁与不可重入锁。不可重入锁也有人成为非可重入锁,都是一个意思,不同的叫法而已! 前面我有篇文章《synchronized 是可重入锁吗?为什么?》写过 synchronized,今天我们再来借助 syn...

图解 Java 中的公平锁与非公平锁

herman 7年前 (2018-11-22) 3050浏览

关于 Java 中的锁,我这算是写了一个系列了!今天我们进行写锁,Java 中的公平锁 VS 非公平锁。 网上关于 Java 中锁的内容有很多,所以我写的这些内容百度都不怎么喜欢,也很难搜索这些知识点到我的个人网站上。但是这些内容呢?我是想...

JVM 中静态变量的优先执行顺序!

herman 7年前 (2018-11-21) 2756浏览

1+1=2,很简单。大家都懂!但是你看看现在的幼儿园大班、小学生的作业题,有多少你会做出来,或者是一眼就看作出答案来? 不夸张的说,很多家长都被打败来。直到你认输,怀疑人生。 简单的知识,可以汇总出伟大的命题。今天我们就一起来看看打败...

Java 中的无锁、偏向锁、轻量级锁、重量级锁!

herman 7年前 (2018-11-21) 3536浏览

最近一段时间,有人微信私信我说:“看我的文章,喜欢每天都进步的感觉!”把我高兴坏了!还有人经常打赏我,我在这里感谢他(她)们! 每收到一份打赏、赞美、评论、留言等都是满满的幸福。再次感谢大家的认可和支持! ...

Java 中的自旋锁和适应性自旋锁!

herman 7年前 (2018-11-21) 4380浏览

阅读过上篇文章的网友,可能会发现上一篇文章中已经出现了一个自旋锁! 什么?怎么可能?你在上一篇文章中连一个自旋锁的字都没提,怎么可能有自旋锁(欺骗我农村来的是吧,一定是)? 我怎么可能会骗你呢?就算骗了你,也骗不了其他人,那么多读者,...

从“图”学习乐观锁与悲观锁(CAS以及ABA问题)

herman 7年前 (2018-11-20) 3784浏览

前面写了好几篇关于 HashMap 的文章,有人在微信群里给我反馈说想看点别的。其实我也想换了,HashMap 写来写去就那么点内容,还能写出 bug 出来(大笑)!所以,索性我今天就换个新内容!乐观锁 VS 悲观锁! 其实吧,写锁也写不出...

HashMap 在JDK1.8与JDK1.7的性能测试对比

herman 7年前 (2018-11-20) 3677浏览

任何数据结构的产生总对应着要解决一个实际的问题!我在《HashMap 存在的意义是什么?》这篇文章中总结到:HashMap 这种数据结构解决存取一组 key-vaule 键值对数据,并且在插入、删除、遍历都有不错性能的数据结构。我们也知道,JDK...

从 HashMap 的扩容机制来说它为什么不是线程安全的!

herman 7年前 (2018-11-20) 2564浏览

我在前面的文章《Java 线程安全的3大核心:原子性、可见性、有序性》中已经说到了什么是线程安全!根据这篇文章,我们对照着 HashMap 来说说它为什么不是线程安全的? 前面我也强调过多次,回答是不是线程安全的请从:原子性、可见性、有序性...

HashMap 存在的意义是什么?

herman 7年前 (2018-11-20) 3430浏览

我一直在思考一个问题:HashMap 存在的意义是什么?也就是说 Java 为什么要设计 HashMap?我问了很多面试者以及很多 CSDN 的博客专家都没有找到想要的答案!于是我自己查了很多资料想找 HashMap 为什么需要这样设计?最终都没...

学会 Java 中的锁,你只需要记住 6 句法则即可!

herman 7年前 (2018-11-17) 2610浏览

Java 中日常用到的锁大概有 14 种:悲观锁、乐观锁、自旋锁、适应性自旋锁、无锁、偏向锁、轻量级锁、重量级锁、公平锁、非公平锁、可重入锁、非可重入锁、独享锁、共享锁。 每种锁都有不同的使用场景!具体哪种场景使用哪种锁,你只需要回答下面 ...

Out of memory:Kill process or sacrifice child

herman 7年前 (2018-11-15) 6110浏览

这个错误同样不常见,很少有人遇到,但并不代表它不存在!今天就来说说 Out of memory: Kill process or sacrifice child。 我们知道,操作系统(operating system)构建在进程(...

深入理解 java.lang.OutOfMemoryError: Out of swap space 错误

herman 7年前 (2018-11-15) 3786浏览

最近我是想写一个 JVM 系列,然后全部都发表到公众号里,在公众号里形成一个菜单。方便我的粉丝阅读! 这写这篇文章之前,我在百度里搜索了一下关于 java.lang.OutOfMemoryError: Out of swap sp...

java.lang.OutOfMemoryError: Unable to create new native thread

herman 7年前 (2018-11-14) 13223浏览

没有一样东西是可以随便挥霍的,亲情、爱情都不行。JVM 也不行! 程序也都是和现实世界规律一致的。Java 中存在多线程,支持同时执行多项任务。所以物理机上即使只有一个CPU,我们也可以同时运行多个程序。 JVM 中的线程也需要内存空...