Java虚拟机(JVM)
文章平均质量分 83
java虚拟机相关文章
八股文朗诵家
扶我起来背八股文
展开
-
JVM垃圾回收机制
一、什么是垃圾回收 垃圾回收(Garbage Collection,简称GC)也称垃圾收集,Java程序会不定时的被唤起检查是否有不再被使用的对象,并释放它们占用的内存空间。垃圾回收就需要完成三件事情:①哪些对象的内存需要回收?②什么时候回收?③采用什么办法回收? 1. 如何判断对象是否已死 这里判断对象已死,说明对象已经没有作用了,需要把它们的内存释放出来,以便于后面程序新产生的对象使用。一般判断对象是否已死有两种方法: 1)引用计数法 给每个创建的对象添加一个引用计数器,每当此对象被某个地方引用时,计原创 2021-07-01 19:32:06 · 119 阅读 · 0 评论 -
JVM运行时数据区内存结构解析
JVM运行时数据区的整个内存结构分为五大块:虚拟机栈、本地方法栈、程序计数器、堆、方法区。下面将针对每一块进行详细解析 一. 虚拟机栈(JVM Stack) Java虚拟机栈(Java Virtual Machine Stacks)是线程私有的一块结构,即生命周期和线程相同,用于存储栈帧。每个方法在执行时都会创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直到执行完成的过程就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。 1. 局部变量表原创 2021-06-24 17:04:04 · 231 阅读 · 0 评论 -
类加载和双亲委派模型
双亲委派机制 类加载器分类 站在Java虚拟机的角度来看,只存在两种不同的类加载器: 一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分; 另外一种是其他所有的类加载器,这些类加载器都是由Java语言实现,独立存在于虚拟机外部,并且全部继承自抽象类java.lang.ClassLoader。 站在开发人员的角度来看,分为四层类加载器: 启动类加载器(Bootstrap Class Loader) 扩展类加载器(Extension Cl原创 2021-06-04 00:55:45 · 77 阅读 · 0 评论 -
初识jvm的类加载过程
java的类加载 一、java内存分析 二、类的加载过程 当程序主动使用某个类的时候,如果该类还没有被加载到内存中,则系统会依次进行如下三个步骤: 类的加载(Load) 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,此过程由类加载器完成。 类的链接(Link) 将类的二进制数据合并到JVM的运行状态之中的过程 验证:确保加载的类的信息符合JVM规范,没有安全方面的问题。 准备:正式为类变量(s原创 2020-10-09 21:44:20 · 95 阅读 · 0 评论 -
Java对象的内存布局,创建,访问图解
进都进来了,看完再走啊~ 本文并不是说教你如何找对象的,毕竟博主自个都没有!!!!!! 本文主要讲解我们在编写Java程序的时候一个new关键字,后面可能隐藏了哪些技术! Java对象的内存布局,创建,访问详解 Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面,创建对象通常(例外:复制 ,反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(普通对象,不包括数组和Class对象等)的创建又是怎样一个过程呢? 一、对象的内存布局(对象大概长啥样) 想要找对象.原创 2021-05-19 15:51:43 · 504 阅读 · 0 评论 -
JVM中自带的类加载器
1 启动类加载器 启动类加载器 又称 引导类加载器(Bootstrap ClassLoader) 这个类加载器使用C/C++语言实现的,嵌套在JVM内部。 它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar、resource.jar或sun.boot.class.path路径下的内容),用于提供JVM自身需要的类 并不继承自java.lang.ClassLoader,没有父加载器。 加载扩展类和应用程序类加载器,并指定为他们的父类加载器。 处于安全考虑,Bootstrap启动原创 2021-03-29 15:52:54 · 207 阅读 · 0 评论 -
JVM类加载器子系统各阶段作用
类加载器子系统各阶段作用 类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否运行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射) 1 加载阶段 通过一个类的全限定类名获取定义此类的二进制字节流 将这个字节流所代表原创 2021-03-29 15:05:54 · 266 阅读 · 1 评论