
JVM
文章平均质量分 78
像少年啦飞驰点、
一个不想变老的少年……
展开
-
Java中的四种引用详解(强引用、软引用、弱引用、虚引用)
1、强引用,不会被垃圾回收;2、软引用,当内存不足时,会被垃圾回收;3、弱引用,当执行垃圾回收时,就会被直接回收掉;4、虚引用,要搭配ReferenceQueue使用,可以用来记录某一对象是否被垃圾回收了。原创 2022-10-09 14:32:30 · 534 阅读 · 0 评论 -
JVM 指令集
前言最近在学习 JVM 的知识,学习类的文件结构和类加载过程中,需要将 .class 文件反编译查看指令执行过程,在此记录 JVM 指令集。指令码 助记符 说明0x00 nop 无操作0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06原创 2022-03-18 13:58:26 · 120 阅读 · 0 评论 -
JVM 类加载机制
JVM 类加载机制1、什么是类的加载类的加载指的是将类的 .class 文件的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class 对象,用来封装类在方法区的数据结构。类加载的最终产品是位于堆区中的 Class 对象,Class 对象中封装了类在方法区内的数据结构,并向程序员提供了访问方法区内的数据结构的接口。2、类的生命周期其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的原创 2021-08-23 22:47:30 · 102 阅读 · 0 评论 -
Jvm垃圾回收器(终结篇)
Jvm垃圾回收器(终结篇) Jvm垃圾回收目前就准备了这三篇博文进行整理,在写博文的过程中我也是边看边记载的,我觉得这种学习方式更容易让人记住,不会轻易忘记。以前的学习模式都是看PDF文档、看书等,但是有个缺点就是当时记住了过段时间就会忘记,因此想把学习过程中重要的部分做个笔记总结,以便于后期复习回顾(学习技巧仅个人观点)同时也希望lz的博客能帮助到广大园友一丢丢。在此立个Flag!以后我会坚持写博客的。哈哈--好了 接下来言归正传。知识回顾:第一篇《Jv...转载 2021-02-26 15:07:12 · 291 阅读 · 1 评论 -
Jvm垃圾回收器(基础篇)
Jvm垃圾回收器(基础篇) 一:概述 在这篇文章中《Jvm运行时数据区》介绍了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈,3个区域随着线程的生存而生存的。内存分配和回收都是确定的。随着线程的结束内存自然就被回收了,因此不需要考虑垃圾回收的问题。而Java堆和方法区则不一样,各线程共享,内存的分配和回收都是动态的。因此垃圾收集器所关注的都是这部分内存。 接下来我们就讨论Jvm是怎么回收这部分内存的。在进行回收前垃圾收集器第一件事情就是确...转载 2021-02-26 14:26:01 · 220 阅读 · 1 评论 -
Jvm运行时数据区
Jvm运行时数据区 一:运行时数据区 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运行时数据区域,如图所示:图解:其中置灰部分是跟随虚拟机启动而存在的,线程共享白色区域则是跟随线程启动而存在,线程私有下面进行单独讲解这几块区域:1.程序...转载 2021-02-26 13:49:42 · 227 阅读 · 1 评论 -
JVM之Java从编译到执行
Java从编译到执行Java程序的执行过程JVM、JRE、JDK 的关系JVM 的特性跨平台性跨语言性(语言无关性)总结讲 Java 从编译到执行之前,先附上一幅图,能清晰的描述这一过程。Java程序的执行过程一个 Java 程序,首先经过 javac 编译成 class 文件,然后通过类加载器(ClassLoader)加载到 JVM,然后 JVM 将其加载到方法区,再通过执行引擎(比如字节码解释器)运行在操作系统(OS)上。执行时,JVM会调用操作系统相关的函数。具体过程总结如下:Java文件原创 2020-08-20 22:55:43 · 420 阅读 · 0 评论