一.类加载过程

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从入门到入魔(一) 类加载机制相关推荐

  1. JVM的私房笔记(一)类加载机制与类加载器 by 葵鱼

    前言 准备写这份笔记的时候,想法还是较为简单的,就是希望能将学到的,听到的,查到的,看到的东西做一个总结,以免后面自己遗忘.同时我将会以段落和副标题的形式编写.有什么问题或者错误的地方,还请大家多指正 ...

  2. jvm类加载机制_JVM 类加载机制

    学习导图 一.为什么要学习类加载机制? 今天想跟大家唠嗑唠嗑 Java 的类加载机制,这是 Java 的一个很重要的创新点,曾经也是 Java 流行的重要原因之一. Oracle 当初引入这个机制是为 ...

  3. 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题

    转载自 深入JVM系列(三)之类加载.类加载器.双亲委派机制与常见问题 一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用 ...

  4. Java基础——类加载机制及原理

    一.什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结 ...

  5. 怎么加载文件_Java虚拟机从入门到入土之JVM的类加载机制

    作者:六脉神剑 转载于:https://juejin.im/post/5e1aaf626fb9a0301d11ac8e JVM总体概述 JVM总体上是由 类装载子系统(ClassLoader) 运行时 ...

  6. Java 工程师必须掌握的 JVM 类加载机制!

    这篇文章不聊别的,专门来侃侃JVM的类加载机制 概念 类加载器把class文件中的二进制数据读入到内存中,存放在方法区,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据 ...

  7. JVM基础系列第7讲:JVM 类加载机制

    当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析.运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制.JVM 虚拟机执行 class 字节 ...

  8. jvm类加载机制_面试:对于JVM类加载机制深度解析

    目录: 前文回顾 JVM在什么情况下会加载一个类? 从实用角度出发,来看看验证.准备和初始化的过程 核心阶段:初始化 类加载器和双亲委派机制 1.前文回顾 咱们今天先来回顾一下昨天讲到的JVM整体的一 ...

  9. JVM 类加载机制:编译器常量与初始化

    1. 前言 最近在研究JVM虚拟机类加载机制的时候,我们了解到了类加载机制的生命周期以及在准备阶段,JVM虚拟机会对类的静态变量进行初始化,这个时候只是会将静态变量初始化为默认的初始值.对静态变量的定 ...

  10. 深入理解JVM虚拟机(六):虚拟机类加载机制

    1. 概述 虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类记载机制. 与那些在编译时需要进行连接工作 ...

最新文章

  1. CenOS6.5安全加固及性能优化(脚本)
  2. A winner is a dreamer who never gives up
  3. mysql的字符集设置为什么_为什么Mysql默认的字符集都是latin1
  4. 一篇文章带你解析,乐观锁与悲观锁的优缺点
  5. Extjs 更换主题(转载)
  6. Java集合框架:LinkedList
  7. 焦虑的移动互联网开发者如何破局?专题解析
  8. 【JavaScript】Canvas绘制美丽的网螺旋旋转图形
  9. Spring学习总结(30)——Spring事物(@transactional注解)在什么情况下会失效,为什么?
  10. OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
  11. 月薪仅18K的NLP工程师,回炉重造吧!
  12. Spring AOP(五)之Around增强处理
  13. 图解eclipse+myelcipse开发EJB
  14. 价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议
  15. 红外图像的特征提取 matab
  16. VS常用的12个插件
  17. 非常好的免费开源网站原型图设计工具
  18. laravel5.6 提示The page has expired due to inactivity. Please refresh and try again.的解决方法
  19. 智能内存整理 [免费绿色] 3.0.0.0
  20. 信号速率计算(数据速率、比特率、码元速率、符号率、带宽、采样率)

热门文章

  1. 三角公式 - 记忆版
  2. 10、wpf显示图片方式一: Image控件
  3. 龙芯电脑安装debian 10 buster
  4. SEO分析关键词策略
  5. 如何用数据说话-《数据化决策(美)道格拉斯·W.哈伯德》笔记与心得
  6. 【财经期刊FM-Radio|2021年03月09日】
  7. latex图表中英文双标题的使用技巧
  8. codecademy
  9. java端口扫描器 demo_端口扫描器的设计与实现(java)
  10. 数据结构应用题大题笔记