JVM从入门到入魔(一) 类加载机制
一.类加载过程
1.装载
类的class文件读入到内存,并为之创建一个java.lang.Class对象
1.定位 classloader.find() 找到文件位置,通过类的全限定名来获取定义此类的二进制字节流
2.将class文件信息放到方法区中
3.将 class对应的对象 放到JVM的堆中
2.链接
1.确保类的信息的正确性
2.为类的静态变量分配空间,并初始化为默认值
3.将class中的符号引用转为直接引用 , 也就是class中的符号转为内存中的地址
3.初始化
将类的静态变量赋值为真正的值
二.类加载器
类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一个类就不会被再次载入了。
三.类加载机制
1.全盘负责
2.双亲委派
3.缓存机制
双亲委派机制:如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载。
JVM从入门到入魔(一) 类加载机制相关推荐
- JVM的私房笔记(一)类加载机制与类加载器 by 葵鱼
前言 准备写这份笔记的时候,想法还是较为简单的,就是希望能将学到的,听到的,查到的,看到的东西做一个总结,以免后面自己遗忘.同时我将会以段落和副标题的形式编写.有什么问题或者错误的地方,还请大家多指正 ...
- jvm类加载机制_JVM 类加载机制
学习导图 一.为什么要学习类加载机制? 今天想跟大家唠嗑唠嗑 Java 的类加载机制,这是 Java 的一个很重要的创新点,曾经也是 Java 流行的重要原因之一. Oracle 当初引入这个机制是为 ...
- 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
转载自 深入JVM系列(三)之类加载.类加载器.双亲委派机制与常见问题 一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用 ...
- Java基础——类加载机制及原理
一.什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结 ...
- 怎么加载文件_Java虚拟机从入门到入土之JVM的类加载机制
作者:六脉神剑 转载于:https://juejin.im/post/5e1aaf626fb9a0301d11ac8e JVM总体概述 JVM总体上是由 类装载子系统(ClassLoader) 运行时 ...
- Java 工程师必须掌握的 JVM 类加载机制!
这篇文章不聊别的,专门来侃侃JVM的类加载机制 概念 类加载器把class文件中的二进制数据读入到内存中,存放在方法区,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据 ...
- JVM基础系列第7讲:JVM 类加载机制
当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析.运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制.JVM 虚拟机执行 class 字节 ...
- jvm类加载机制_面试:对于JVM类加载机制深度解析
目录: 前文回顾 JVM在什么情况下会加载一个类? 从实用角度出发,来看看验证.准备和初始化的过程 核心阶段:初始化 类加载器和双亲委派机制 1.前文回顾 咱们今天先来回顾一下昨天讲到的JVM整体的一 ...
- JVM 类加载机制:编译器常量与初始化
1. 前言 最近在研究JVM虚拟机类加载机制的时候,我们了解到了类加载机制的生命周期以及在准备阶段,JVM虚拟机会对类的静态变量进行初始化,这个时候只是会将静态变量初始化为默认的初始值.对静态变量的定 ...
- 深入理解JVM虚拟机(六):虚拟机类加载机制
1. 概述 虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类记载机制. 与那些在编译时需要进行连接工作 ...
最新文章
- CenOS6.5安全加固及性能优化(脚本)
- A winner is a dreamer who never gives up
- mysql的字符集设置为什么_为什么Mysql默认的字符集都是latin1
- 一篇文章带你解析,乐观锁与悲观锁的优缺点
- Extjs 更换主题(转载)
- Java集合框架:LinkedList
- 焦虑的移动互联网开发者如何破局?专题解析
- 【JavaScript】Canvas绘制美丽的网螺旋旋转图形
- Spring学习总结(30)——Spring事物(@transactional注解)在什么情况下会失效,为什么?
- OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
- 月薪仅18K的NLP工程师,回炉重造吧!
- Spring AOP(五)之Around增强处理
- 图解eclipse+myelcipse开发EJB
- 价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议
- 红外图像的特征提取 matab
- VS常用的12个插件
- 非常好的免费开源网站原型图设计工具
- laravel5.6 提示The page has expired due to inactivity. Please refresh and try again.的解决方法
- 智能内存整理 [免费绿色] 3.0.0.0
- 信号速率计算(数据速率、比特率、码元速率、符号率、带宽、采样率)