![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 74
扬帆舟
生活就是工作,工作就是生活
展开
-
【JVM内存模型】入门篇
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域。这里一定要注意的是:方法区和Java堆是线程共享区,而虚拟机栈、本地方法区和程序计数器都是线程私有的。原创 2016-12-26 15:20:51 · 336 阅读 · 0 评论 -
【JVM内存模型】程序计数器
程序计数器 (The Program Counter)程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功原创 2017-01-11 14:11:04 · 535 阅读 · 0 评论 -
【JVM内存模型】实例分析
In a nutshell primitive, object and class data are stored in 3 different memory areas: heap space, method area and native area. The heap space holds object data, the method area holds class code, an原创 2017-01-12 11:14:46 · 324 阅读 · 0 评论 -
【Java对象解析】不得不了解的对象头
一:对象头HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,这部分数...转载 2017-01-18 15:02:41 · 41105 阅读 · 11 评论 -
Memory barrier(内存屏障)
内存屏障(英语:Memory barrier),也称内存栅栏,内存栅障,屏障指令等,是一类同步屏障指令,是CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作。大多数现代计算机为了提高性能而采取乱序执行,这使得内存屏障成为必须。语义上,内存屏障之前的所有写操作都要写入内存;内存屏障之后的读操作都可以获得同步屏障之前的写操作的结...原创 2019-01-18 17:57:15 · 3831 阅读 · 0 评论 -
JVM预热
背景讲JVM的预热,就离不开JVM的类加载, JVM的三个类加载器:Bootstrap、ExtClassLoader、AppClassLoader什么是JVM预热JVM预热 : JVM Warm Up一旦类加载完成,所有重要的类(在进程启动时使用)都会被推送到JVM缓存(本机代码)中,这使得它们在运行时可以更快地访问。其他类是根据每个请求加载的。对Java Web应用程序的第一个请求通...翻译 2019-05-06 18:29:02 · 7525 阅读 · 0 评论 -
【JAVA中的那些事】init与clinit的区别
背景那天我在进行代码测试,debug操作,看到如下情况:发现在执行类ParentBean的static代码块的时候,出现了:ParentBean.()那疑问来了:是什么东东?是什么东东带着疑问我进行了疯狂google(技术的路上万事都是问自己,自己不懂问google,哈哈)在oracle的官网有这么一段文献:At the level of the Java Virtual Mach...原创 2019-07-31 15:28:39 · 676 阅读 · 0 评论