jvm
文章平均质量分 91
little_color
多多交流啊!
展开
-
【JVM】对象的创建过程和对象的内存布局和对象的分配过程
说起对象的创建过程,就必须要先从类的初始化开始,只有先将类加载进内存进行初始化后,才能创建对象。类的初始化过程:1、加载 Loading将类.class文件加载进内存(存放于内存中的class静态常量池中)2、连接 Linkinga、验证 验证.class文件的格式b、准备 给类的**静态变量**赋默认值c、解析 将符号引用转换为直接引用3、初始化先执行静态代码块,再给静态的成员变量赋真实的值...原创 2020-11-02 10:48:21 · 201 阅读 · 0 评论 -
【JVM】JAVA的运行时数据区
JVM : JAVA VIRTUAL MACHINE ,是一种虚构出来的机器。是虚拟的CPU,其中的很多组建都是模拟了CPU的功能。运行时数据区及其主要功能分布介绍一下不同区域的主要功能。PC: Program Counter 程序计数器。存放指令的位置。在虚拟机运行中,CPU会从PC中获取将要执行的指令的地址,去该地址执行该指令,完成后,PC会继续下移到下一个指令的位置。JVM Stack:线程栈,栈中存放栈帧,每个线程拥有自己的私有的线程栈空间,线程栈由栈帧构成,每个方法会形成一个栈帧原创 2020-10-12 15:00:27 · 102 阅读 · 0 评论 -
【JVM】实例分析Java代码运行时内存布局
Java内存模型对于我们实际分析Java代码有着无可替代的作用。用一个小例子来分析Java代码运行时,内存是如何布局的。package test01;//日期类class BirthDate { private int day; private int month; private int year; public BirthDate(int d, int m,原创 2016-08-03 14:42:25 · 1802 阅读 · 0 评论 -
【JVM】类加载、连接和初始化过程
程序运行时,加载类主要经过3个阶段分别是类的加载,连接和初始化。分别介绍一下这三个过程。一、加载类的加载指的是将类的.class文件中二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。加载.class文件的方式1、从本地系统中直接加载2、通过网络下载.class文件3、从zip,jar等归档文件中加原创 2016-08-04 14:35:30 · 5443 阅读 · 1 评论 -
【JVM】Java内存模型
JVM基本结构简介:PC寄存器: 1、指向下一条指令的地址 2、每个线程都拥有一个PC寄存器 3、在线程创建时创建 4、执行本地方法时,pc的值为undefined 执行引擎:用来操作数据和发布指令内存区间主要包括方法区,Java堆,Java栈和本地方法栈四部分。方法区通常方法区会和永久代联系原创 2016-08-09 16:24:28 · 634 阅读 · 1 评论 -
JAVA CMS垃圾回收器回收机制
CMS concurrent marks sweep 并行标记清除垃圾回收机制。此篇文章是根据众多网上资料总结的关于CMS垃圾回收器的相关知识点。便于个人总结和回忆。垃圾回收器类型1、串行回收,Serial回收器,单线程回收,全程stw;2、并行回收,名称以Parallel开头的回收器,多线程回收,全程stw;3、并发回收,cms与G1,多线程分阶段回收,只有某阶段会stw;CMS垃圾回...原创 2019-04-11 15:52:12 · 7195 阅读 · 4 评论