自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 多线程编程(9)之死磕Synchronized原理

这篇文章有点长,大家仔细点看,上篇博客已经介绍了https://blog.csdn.net/jokeMqc/article/details/115524141synchronized的原理,但是我总体看了下来感觉对于synchronized还是比较的模糊,然后本篇主要是把JVM源码下载下来看具体Synchronized的具体实现原理,这里跟大家分享一下。 一、内存模型 1.1为什么要有内存模型 在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的

2021-04-13 13:52:15 611

原创 JVM(2)之OutOfMemoryError异常

一、实战:OutOfMemoryError异常 1.1Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会产生内存溢出异常。 限制Java堆的大小为20MB,不可扩展(将堆的最小值-Xms参数与最大值-Xmx参数设置为一样即可避免堆自动扩展),通过参数-XX:+HeapDumpOnOutOf-MemoryError可以让虚拟机在出现内存溢出异常的时候Dum

2021-04-12 09:46:02 871

原创 JVM(1)之内存模型

我们很多 Java 开发人员都知道在 JVM 中有堆和栈,但是永远说不清楚堆到底是什么,栈是什么, 除了堆栈在 JVM 中还有其他的东西吗, 本章将带领大家细分 JVM 的组成以及他们的用处。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,我们

2021-04-09 11:15:35 111

原创 多线程编程(8)之深入分析 synchronized 的实现原理

记得刚刚开始学习 Java 的时候,一遇到多线程情况就是 synchronized,相对于当时的我们来说 synchronized 是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道 synchronized 是一个重量级锁,相对于 Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。 诚然,随着 Javs SE 1.6对 synchronized 进行的各种优化后,synchronized 并不会显得

2021-04-08 16:58:14 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除