【JVM学习】对象实例化内存布局与访问定位

2020-10-25
阅读 3 分钟
1.3k
new:常见的使用 new 关键字创建对象、单例类中调用getInstance的静态类方法、XxxFactory/XxxBuilder静态方法。

【JVM学习】JVM指令手册

2020-10-21
阅读 6 分钟
952
一、栈和局部变量操作将常量压入栈的指令 {代码...} 从栈中的局部变量中装载值的指令 {代码...} 将栈中的值存入局部变量的指令 {代码...} 通用(无类型)栈操作 {代码...} 二、类型转换 {代码...} 三、整数运算 {代码...} 四、逻辑运算移位操作 {代码...} 按位布尔运算 {代码...} 浮点运算 {代码...} 五、对象和数组对象...

【JVM学习】Class字节码文件结构

2020-10-19
阅读 3 分钟
1k
class字节码文件结构类型名称说明长度数量u4magic魔数,识别Class文件格式4个字节1u2minor_version副版本号(小版本)2个字节1u2major_version主版本号(大版本)2个字节1u2constant_pool_count常量池计数器2个字节1cp_infoconstant_pool常量池表n个字节constant_pool_count-1u2access_flags访问标识2个字节1u2this_class类索...

【JVM学习】垃圾回收器

2020-10-15
阅读 20 分钟
2k
在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的性能表现可以超过并行回收器和并发回收器。所以,串行回收默认被应用在客户端的Client模式下的JVM中。

【JVM学习】垃圾回收相关概念

2020-10-15
阅读 11 分钟
1.5k
在默认情况下,通过system.gc()者Runtime.getRuntime().gc() 的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。

【JVM学习】垃圾回收相关算法

2020-10-15
阅读 10 分钟
1k
对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1;当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,即表示对象A不可能再被使用,可进行回收。

【JVM学习】——执行引擎

2020-10-14
阅读 8 分钟
2k
“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。

【JVM学习】——方法区

2020-10-10
阅读 8 分钟
4.2k
《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpot JVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。

【JVM学习】——本地方法栈、堆

2020-10-10
阅读 17 分钟
5.5k
简单地讲,一个Native Method就是一个Java调用非Java代码的接囗。该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C" 告知C++编译器去调用一个C的函数。

【运行时数据区】——程序计数器、虚拟机栈

2020-10-10
阅读 9 分钟
1.9k
内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。

【JVM学习】——类加载器子系统

2020-10-06
阅读 11 分钟
2.6k
一、类加载器子系统1.1 JVM体系结构JVM被分为三个主要的子系统:(1)类加载器子系统(2)运行时数据区(3)执行引擎1.2 类加载器子系统作用(1)类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开有特定的文件标识(0xCAFEBABE)。(2)类加载器(Class Loader)只负责class文件的加载,至于它是...

【JVM学习】——JVM与JAVA体系结构

2020-10-05
阅读 8 分钟
3.4k
一、Java生态圈随着Java以及Java社区的不断壮大,Java也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个平台,Java虚拟机扮演着举足轻重的作用Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分。作为一种文化,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat...