JVM
文章平均质量分 90
简明编程
CSDN简明编程,掘金白嫖圣手fly,其他地方均不是本人,若发现他人盗用本人原创文章请联系我,各种资料均免费,需要请私信
展开
-
JVM系列——类加载,类加载器day3-2
将类的字节码载入方法区中,内部采用C++的instanceKlassI描述java类,它的重要field有:如果这个类还有父类没有加载,先加载父类加载和链接可能是交替运行的实现验证,用于验证类是否符合JVM的规范,是安全性检查为static变量分配空间,设置默认值将常量池中的符号引用解析为直接引用初始化即调用,虚拟机会保证这个类的构造方法的线程安全类的初始化时懒惰的:使用启动类加载器进行类加载 :表示设置bootclasspath :表示将当前目录追加至bootclasspath后扩展类加载器对原创 2022-07-13 15:02:56 · 120 阅读 · 0 评论 -
JVM系列——多态原理,异常,锁,Java语法糖day3-1
当执行invokevirtual指令时,在异常的字节码中我们可以看到多出了一张表异常表中有四个字段编译字节码解读异常表如下图所示异常表的字段分别阐述了,程序从哪个索引号(from)开始进入监管范围,从哪个索引号(to)结束监管,以及从哪个索引号(target)进行异常处理,异常处理的类型(type)其中有一行astore_2:将异常对象引用存入局部变量表槽位为2的位置在多个异常的情况中,异常表会有更多行,每一行存储的是你设置的不同的异常处理,对于程序产生的异常,程序会进入异常表进行判断,在异原创 2022-07-13 04:18:18 · 75 阅读 · 0 评论 -
JVM系列——字节码指令day2-2
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.htmlpublic cn.itcast.jvm.t5.Helloworld();构造方法的字节码指令如下2a:表示aload_0加载 slot 0的局部变量,即this,做为下面的invokespecial构造方法调用的参数,即将this加载到操作树栈上准备执行b7:表示 invokespecial 预备调用构造方法00 01:引用常量池中#1项,即b1:表示return返回下图信原创 2022-07-10 05:18:13 · 113 阅读 · 0 评论 -
JVM系列——垃圾回收调优,类加载和字节码技术day2-1
如何确定自己使用了哪些垃圾回收器若你是在项目中,可以直接使用编辑器的终端查看对应版本的垃圾回收器1.打开cmd2.输入以下内容推荐设置的大小为整个堆内存的25% ~ 50%之间,但尽量靠近50%计算公式:空间大小大于等于 例如:并发量为1000,则设置的内存大小就是 > = 512k×1000 = 500M将新生代的空间扩大当然是最简单直接的方法,但是并不是越大越好若新生代空间过大,则会导致老年代的空间变小,导致老年代的垃圾回收Full GC的次数增多,而老年代的垃圾回收时间比新生代长的多原创 2022-07-09 23:39:44 · 191 阅读 · 0 评论 -
JVM系列——直接内存,垃圾回收day1-3
指的是操作系统内存常见于NIO操作时,用于数据缓冲区,分配回收成本较高,但读写性能高,不受JVM内存回收管理进行大文件的读写,效率很高不用直接内存:Java不具备磁盘读写的能力,当我们要进行磁盘读写时需要调用本地方法接口,从用户态转换到内核态,此时磁盘文件被内存读取进入系统内存的系统缓存区,再经由系统缓存区复制进入Java堆内存的Java缓冲区当我们使用直接内存时:磁盘文件会进入系统内存和Java堆内存公用的直接内存区,无需进行复制操作,速度成倍提升我们可以直接查看计算机的内存来观测直接内存Java中使用原创 2022-07-09 05:03:21 · 174 阅读 · 0 评论 -
JVM系列——栈与堆、方法区day1-2
Java Virtual Machine Stacks (Java虚拟机栈)线程运行时需要的内存空间,多个线程多个栈栈中含有多个栈帧[Frame](链式调用时),栈帧就是每个方法运行时需要的内存每个方法执行时都需要占用内存(参数、局部变量、返回值都需要分配内存)当每个方法需要执行时,栈帧就会被压入栈内,直到方法执行完毕,栈帧就会出栈注意!:每个线程只能有一个活动栈帧,对应正在执行的方法将代码打断点进入调试查看到这里我们看到整个栈结构是:main方法在最下面,然后是do1,最后是do2,接下来执原创 2022-07-03 14:58:22 · 107 阅读 · 0 评论 -
JVM系列——概述,程序计数器day1-1
Java二进制字节码的运行环境JVM:运行环境JRE:JVM+Java基础类库JDK:JVM+Java基础类库+编译工具JVM仅是一套规范Program Counter Register程序计数器((寄存器)记住下一条JVM指令的执行地址,根据地址信息按照顺序进行执行若没有程序计数器,则不知道下一条该执行哪一条命令...原创 2022-07-03 03:25:15 · 116 阅读 · 0 评论