jvm
文章平均质量分 87
没脑袋的喵
软件工程专业在读研究生
展开
-
JVM第10章-前端编译与优化
从Javac代码的总体结构来看,编译过程大致可以分为1个准备过程和3个处理过程1)准备过程:初始化2)过程,包括:·词法、语法分析。将源代码的字符流转变为标记集合,构造出抽象语法树。·填充符号表。产生符号地址和符号信息。3):插入式注解处理器的执行阶段,本章的实战部分会设计一个插入式注解处理器来影响Javac的编译行为。4),包括:·标注检查。对语法的静态信息进行检查。·数据流及控制流分析。对程序动态运行过程进行检查。·解语法糖。将简化代码编写的语法糖还原为原有的形式。原创 2023-12-14 19:37:51 · 1037 阅读 · 0 评论 -
JVM实战-掌握分派方法规则
Javac编译器输出的字节码指令流,基本上[1]是一种基于栈的指令集架构(Instruction SetArchitecture,ISA),字节码指令流里面的指令大部分都是零地址指令,它们。,因为寄存器由硬件直接提供,程序直接依赖这些硬件寄存器则不可避免地要受到硬件的约束。Java程序中,可以通过“super”关键字很方便地调用到父类中的方法,但如何访问祖类的方法。使用MethodHandles。操作数入栈 遇到符号出栈计算。基于栈的指令集主要优点是。原创 2023-12-07 20:55:34 · 652 阅读 · 0 评论 -
JVM第八章-虚拟机字节码执行引擎
执行引擎是Java虚拟机核心的组成部分之一。所有的Java虚拟机的执行引擎输入、输出都是一致的:输入的是字节码二进制流,处理过程是字节码解析执行的等效过程,输出的是执行结果本章将主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行。原创 2023-12-07 20:29:17 · 1135 阅读 · 0 评论 -
JVM第七章-虚拟机类加载机制
那。原创 2023-11-28 19:44:40 · 1059 阅读 · 0 评论 -
JVM虚拟机-虚拟机执行子系统-第6章 字节码指令
Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需的参数(称为操作数,Operand)构成。原创 2023-11-16 20:39:19 · 137 阅读 · 0 评论 -
JVM虚拟机-虚拟机执行子系统-第6章 类文件结构
各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式——字节码(Byte Code)是构成平台无关性的基石。原创 2023-11-16 19:33:18 · 109 阅读 · 0 评论 -
JVM-虚拟机的故障处理与调优案例分析
然后这2个Long对象组成Map.Entry之后,又多了16字节的对象头,然后一个8字节的next字段和4字节的int型的hash字段,为了对齐,还必须添加4字节的空白填充,最后还有HashMap中对这个Entry的8字节的引用,这样增加两个长整型数字,实际耗费的内存为(Long(24byte)×2)+Entry(32byte)+HashMapRef(8byte)=88byte,空间效率为有效数据除以全部内存空间,即16字节/88字节=18%,这确实太低了。全局缓存启用后,服务正常使用了一段较长的时间。原创 2023-11-10 21:01:37 · 1031 阅读 · 0 评论 -
JVM虚拟机-虚拟机性能监控、故障处理工具
(一般称为threaddump或者javacore文件)。线程快照就是。原创 2023-11-10 20:00:00 · 259 阅读 · 0 评论 -
JAVA虚拟机-第3章 垃圾收集器与内存分配策略
在JDK 1.2版之前,Java里面的引用是很传统的定义:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。但现在希望 :当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象——很多系统的缓存功能都符合这样的应用场景。在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为强引用软引用弱引用(Weak Reference)和虚引用。原创 2023-11-06 20:30:18 · 284 阅读 · 0 评论 -
JAVA虚拟机-第2章 Java自动内存管理-异常实践
结果:抛出StackOverflowError异常,异常出现时输出的堆栈深度相应缩小。原创 2023-11-02 21:52:20 · 140 阅读 · 0 评论 -
JAVA虚拟机-第2章 Java自动内存管理-内存区域与内存溢出异常以及对象在Java堆中如何被new、管理和访问(1)
在java中,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题。但正是因为Java程序员把,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误、修正问题将会成为一项异常艰难的工作本章主要了解Java虚拟机的内存管理包括,以及和。原创 2023-11-02 20:37:57 · 109 阅读 · 0 评论