JVM
Ambition小啊潇
这个作者很懒,什么都没留下…
展开
-
JVM——对象实例化的过程
JVM——对象实例化的过程 1、在方法区找该类的信息,如果没找到,进行类的初始化,请参考:类的加载。 2、计算对象所需的大小,属性的大小,包含其父类(实例化对象前要先实例化其父类对象) 3、开辟空间初始化属性,赋予0值(包括其父类) 4、进行属性初始化,定义时初始化>代码块>构造方法。 顺序在运行时不能改变,进行初始化的前提是已经在堆中为对象分配好内存并将属性赋予初...原创 2019-10-23 16:27:07 · 1186 阅读 · 0 评论 -
JVM——Java加载原理双亲委派模型
JVM——Java加载原理双亲委派模型 由于类加载阶段分为:加载,连接(内含准备),初始化三个阶段。而Java将加载阶段提取出来使用类加载器实现。对于Java中任意一个类都是由这个类全限定名和加载这个类的类加载器来唯一确定。 一、类的3种默认类加载器 1、BootStrap ClassLoader启动类加载器:所有类加载器的父类,负责将JAVA_HOME/lib下的核心类库或-Xbo...原创 2019-10-23 11:52:14 · 204 阅读 · 0 评论 -
JVM——类加载时机与加载过程
JVM——类加载时机与加载过程 简单说一些重点,详情请参考:JVM类生命周期概述 什么是类加载机制? 1、类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程。 类加载的时机是什么?虚拟机什么时候会加载Class文件并初始化类? 2、五种情况下类会进行初始化,这一过程发生在加载、...原创 2019-10-23 10:18:27 · 536 阅读 · 0 评论 -
JVM——Java内存模型(JMM)
JVM——Java内存模型(JMM) 到底什么是Java内存模型?Java内存模型定义的主要目标是什么?前言 Java内存模型:屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 Java内存模型的主要目标:定义程序中各个变量的访问规则,即JVM如何将这些变量从内存中取出来以及如何将变量再写回内存等细节。注意:此处的变量指实例字段,...原创 2019-10-19 12:46:42 · 229 阅读 · 0 评论 -
JVM——垃圾回收机制与内存分配模型
JVM——垃圾回收器与内存分配模型 什么内存区域的对象需要使用垃圾回收机制回收?前言: 线程私有的内存区域的生命周期随线程而生,随线程而灭。分配与回收具有确定性,当方法或线程结束时就会被回收,因此,JVM的垃圾回收器及内存分配模型都是针对线程共享的内存区域(Java堆+方法区) 回收对象前,如何判断对象已死?一、对象是否已死? 垃圾回收器在对堆进行垃圾回收前,要先判断这...原创 2019-10-19 10:34:46 · 214 阅读 · 0 评论 -
JVM——Java内存区域与溢出异常
JVM——内存区域与溢出异常 JVM内存区域的划分?一、内存区域划分 线程私有:程序计数器,本地方法栈,虚拟机栈 线程共享:Java堆,方法区,运行时常量池 1、程序计数器:当前线程所执行的字节码的行号指示器(执行Java方法,记录正在执行的虚拟机字节码指令地址;执行Native方法,计数器值为空) 程序计数器是JVM中唯一一块不会产生OOM异常的区域 2、虚拟机...原创 2019-10-18 09:43:17 · 421 阅读 · 0 评论