JVM
文章平均质量分 89
之前看过视频学习JVM,但是理解的不够深入,于是找了个时间去看了大家都推荐的《深入理解JAVA虚拟机》,本专栏也是对学习过程的一些体会做一个记录总结
承与
这个作者很懒,什么都没留下…
展开
-
详细理解JVM对对象的创建,内存分配及访问定位
前言 都说Java是基于对象编程,那么在本文我们主要探讨一下关于对象在Java虚拟机中的一些创建以及内存的布局。 1. 对象的创建 JVM创建对象可以用流程图简单表示: 在其中分配内存时牵涉到JVM对空间的分配策略,这取决于Java堆中内存是否规整,针对此JVM有两种不同的策略: 指针碰撞:在Java堆中内存如果是绝对规整的,被使用过的内存放在一边,空闲的放在另一边,中间放着一个指针作为分界指示器,分配内存就是把指针向空闲方向挪动一段与对象大小相等的距离。 空闲列表:如果 Java 堆内存不规整,虚拟机原创 2021-06-29 17:03:19 · 186 阅读 · 0 评论 -
Java内存区域
在Java程序运行过程中,JVM会将它所管理的内存区划分为不同的几个数据区域,其中又分为线程私有与共享,如下图所示: 接下来对每个区域各自功能进行分析。 1. 程序计数器 程序计数器是一块较小的内存空间,它可以看作当前线程所执行字节码的行号指示器。字节码解释器工作时通过改变计数器的值选取下一条执行指令。它是一个指示器,分支、循环、跳转、线程恢复等功能都需要依赖计数器完成。是唯一在虚拟机规范中没有任何OOM(OutOfMemoryError)情况的区域。 举个栗子,吃饭时,我们可以将吃饭分成几个步骤,拿筷子原创 2021-06-28 13:30:35 · 90 阅读 · 0 评论