JVM
文章平均质量分 79
java虚拟机
Rcfee
这个作者很懒,什么都没留下…
展开
-
定位及解决OOM
OOM:OutOfMemoryError,内存溢出,是指因内存不够,导致操作新对象没有剩余空间。会导致频繁fullgc出现STW从而导致性能下降。内存泄漏:指用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。原创 2024-03-17 23:38:37 · 1290 阅读 · 0 评论 -
JVM调优工具介绍
-XX:SurvivorRatio=6 ,设置的是Eden区与每一个Survivor区的比值,可以反推出占新生代的比值,Eden为6, 两个Survivor为2, Eden占新生代的3/4, 每个Survivor占1/8,两个占1/4.-Xms:最小堆内存,即虚拟机启动后分配的内存大小-Xmx:最大堆内存当最小堆内存满了,会尝试GC,如果GC之后还不能得到足够的内存,则会拓展堆内存,如果-Xmx设置过小则可能拓展失败,会导致OutOfMermory异常,一般-Xmx与-Xms设置为相同,避免每次..原创 2021-12-13 15:51:33 · 807 阅读 · 0 评论 -
jvm-计算机数据存储基础
java虚拟机的指令字节长度、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。首先先熟悉下移位运算符:<<、>>、>>><<:左移,按二进制位数,高位向左移出舍弃,低位补零>>:右移,按二进制位数,低位向右移出,高位补零>>>:无符号右移,忽略符号位,空位补0,计算机中数字以补码存储,首位原创 2020-10-29 11:34:50 · 162 阅读 · 0 评论 -
JVM实探-class文件格式实战(3)
实战演练先创建一个简单类package com.weyne.demo.jvm;public class Test { private static String a = "test-a"; public static void main(String[] args) { System.out.println("Hello world"); }}通过jclasslib可以看到结构体信息通过Sublime等16进制文件编辑器查看Test.clas原创 2020-08-21 16:42:39 · 583 阅读 · 0 评论 -
JVM实探之cp_info.tag格式说明
CONSTANT_Class_info 结构用于表示类或接口,格式如下:CONSTANT_Class_info { u1 tag; u2 name_index;}CONSTANT_Fieldref_info, CONSTANT_Methodref_info 和CONSTANT_InterfaceMethodref_info字段,方法和接口方法由类似的结构表示:字段CONSTANT_Fieldref_info { u1 tag; u2 class_in原创 2020-08-21 13:56:58 · 660 阅读 · 0 评论 -
Class文件格式之各属性名详解
ConstantValue在编译时,javac将会为被static和final修饰的常量生成ConstantValue属性,且只限于基本类型和String类型。编译时javac将会为该常量生成ConstantValue属性,在类加载的准备阶段虚拟机便会根据ConstantValue为常量设置响应的值,如果该变量没有被final修饰,或者并非基本类型及字段串,则选择在类构造器中进行初始化。ConstantValue 属性的格式:ConstantValue_attribute { u2 a原创 2020-08-20 18:03:33 · 539 阅读 · 0 评论 -
JVM实探-class文件格式(2)
本贴主要详解field_info结构和attribute_info,而attribute_info在后续的menthod_info也有涉及。11、字段表fields[],描述当前类或接口声明的所有字段,但不包括从父类或父接口继承的部分。field_info接口如下:field_info { u2 access_flags; #定义字段被访问权限和基础属性的掩码标志 u2 name_index; #对应常量池索引值所属的项为CONSTANT_Utf8_info结构原创 2020-08-20 17:34:07 · 143 阅读 · 0 评论 -
JVM实探-class文件格式(1)
每个class文件对应一个如下所示的ClassFile结构体ClassFile { u4 magic; #魔数 u2 minor_version; #class文件主副版本号,JDK版本 u2 major_version; #class文件主副版本号,JDK版本 u2 constant_pool_count; #常量池数量 cp_info constant_pool[constant_pool_count-1]; #常量池 u2 access_flags原创 2020-08-19 16:34:55 · 125 阅读 · 0 评论