自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 虚拟机的类加载机制

虚拟机类加载机制一、概述二、类加载时机三、类加载的过程1.加载2.验证3.准备4.解析5.初始化四、类加载器1.类与类加载器2.双亲委派模型一、概述Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型数据,这个过程被称为虚拟机的类加载机制。二、类加载时机1.加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的。为支持动态绑定,解析阶段可以在初始化阶段之后再开始。类加载在什么时候开始由虚拟机自己决定。2.初

2020-10-27 17:12:11 88

转载 类文件结构

类文件结构一.概述二.无关性三.Class类文件的结构3.1.Class定义3.2.文件格式一.概述计算机只认识0和1,将我们编写的程序编译成二进制本地机器码已不再是唯一选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式.二.无关性Java诞生之时曾经提出过著名的宣传口号:”Write Once, Run Anywhere".虚拟机可以载入和执行统一中平台无关的字节码来实现这个口号。各种虚拟机与所有平台都同意使用的程序存储格式——字节码(ByteCod

2020-10-18 23:18:04 374 1

转载 垃圾收集器与内存分配策略

垃圾收集器与内存分配策略一、对象生命的确定1.1.引用计数器算法1.2.可达性分析算法1.3.引用类型二、垃圾收集算法2.1.分代收集理论2.2.标记清除算法2.3.标记复制算法2.4.标记整理算法三. 经典垃圾收集器3.1. Serial收集器3.2. ParNew收集器(新生代)3.3. Parallel Scavenge收集器(新生代)3.4. CMS收集器(老年代)3.4.G1收集器(新生带+老年代)一、对象生命的确定1.1.引用计数器算法在对象中添加一个引用计数器,每当有一个地方引用它时,计

2020-10-12 23:24:37 491

原创 HotSpot虚拟机在Java堆中的对象分配,布局和访问

HotSpot虚拟机在Java堆中对象的分配,布局和访问1.对象的创建2.对象的内存布局3.对象的访问定位1.对象的创建(1)将分配的内存变量初始化为零值,保证对象的实例字段在java代码中可以不赋初值就直接使用,使程序能访问到这些字段的数据类型所对应的零值。(2)调用对象的init()方法,是按照程序员的意愿对对象进行初始化2.对象的内存布局在HotSpot虚拟机中,对象在堆内存中的存储布局分为三个部分:1.对象头①Mark Word: 存储对象自身的运行时数据,如HashCode、GC分

2020-09-22 20:33:57 175

原创 Java运行时数据区域

Java运行时数据区域1.程序计数器2.Java虚拟机栈3.本地方法栈4.Java堆5.方法区6.运行时常量池Java运行时数据区如下图所示,包括程序计数器,虚拟机栈,本地方法栈,方法区,Java堆。接下来介绍每个区的功能。1.程序计数器定义:可看成是当前线程所执行的字节码的行号指示器。功能:记录当前线程所执行的字节码的行号。线程私有,也就是说每个线程都有一个程序计数器,且互不影响。对于本地(naive)方法,该计数器的值为空。2.Java虚拟机栈线程私有。虚拟机栈模拟的是Java方法

2020-09-22 18:37:07 225

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除