![](https://img-blog.csdnimg.cn/20190902164238129.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
lzw2019sun
这个作者很懒,什么都没留下…
展开
-
类加载器总结
在java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 提供了更大的灵活性,增加了更多的可能性 在如下几种情况下,java虚拟机将结束生命周期(4种:exit;正常结束;程序异常或错误;操作系统错误导致java虚拟机进程终止) 加载、连接、初始化 java程序使用方式(2种):主动(7)(创实例、访静态变量、调静态方法、反射、初始化子类、被标明为启动类的类、动态语言支持)、...原创 2019-04-27 18:22:05 · 94 阅读 · 0 评论 -
线程上下文加载器(SPI)解析
线程上下文类加载器(ThreadContextClassLoader,TCCL)Java 提供了很多服务提供者接口(Service Provider Interface,SPI),允许第三方为这些接口提供实现。常见的 SPI 有 JDBC、JCE、JNDI、JAXP 和 JBI 等。这些 SPI 的接口由 Java 核心库来提供,而这些 SPI 的实现代码则是作为 Java 应用所依赖的...原创 2019-04-28 15:37:05 · 1193 阅读 · 0 评论 -
Java字节码深入解析(一)
使用javap -verbose 命令分析一个字节码文件时,将会分析该字节码的魔数、版本号、常量池、类信息、类的构造方法、类中的方法信息、类变量与成员变量等等。 魔数:所有的.class字节码文件的前4个字节都是魔数,固定为0xCAFEBABE 魔术之后的四个字节为版本信息,前两个字节表示minor version(次版本号),后两个字节表示major version(主版本号)。 常量池...原创 2019-04-28 22:59:11 · 251 阅读 · 0 评论 -
JVM内存空间
虚拟机栈:Stack Frame 栈帧(涉及方法执行时的入栈,出栈,局部变量表等);每个方法执行,都会创建一个栈帧,伴随着方法从创建到执行完成。用于存储局部变量表,操作数栈,动态链接和方法出口等。 程序计数器(Program Counter)(描述执行字节码执行顺序,先执行什么,下一条执行什么):保存当前线程执行的字节码位置,每个线程工作时都有独立的计数器。只为执行java方法服务,当执行Nat...原创 2019-05-14 20:25:49 · 1321 阅读 · 0 评论 -
JVM常用参数解析
JVM的参数类型:其中标配参数和x参数: 用的较多的是xx参数: 运行的java进程编号显示:jps -l ; 1)boolean类型: jinfo -flag 配置项 进程编号(或jinfo -flags 进程编号):用来查看某个进程的配置(在VM options中可以加参数):+(-)PrintGCDetails表示是否打印垃圾收集细节;+(-)UseSerialGC表示是否使...原创 2019-05-25 12:17:04 · 333 阅读 · 0 评论 -
Java字节码深入解析(二)
针对于方法调用动态分派的过程,虚拟机会在类的方法区建立一个虚方法表的数据结构(virtual method table) 针对于invokeinterface指令来说,虚拟机会建立一个叫做接口方法表的数据结构(interface method table) 虚方法表中的每一个方法都被描述出来一个方法调用的入口地址,如果子类没有重写(没有从父类继承的一些方法),子类中的虚方法表会直接指向父类(对...原创 2019-05-12 17:03:36 · 141 阅读 · 0 评论