`
elliotann
  • 浏览: 13489 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JVM类加载机制

 
阅读更多

1、类加载机制是什么?

      虚拟机把描述类的数据的class文件加载到内存,并且对数据进行连接,初始化,最终形成可以被JVM直接使用的Java类型,(注:请大家一定要区别类加载机制与类加载的过程)其中连接又可以分为三个阶段:验证、准备、解析。

2、类加载的时机

      类从被加载进虚拟机内存,到卸载出虚拟机内存,可以分为如下七个阶段:加载、验证、准备、解析、初始化、使用、卸载。我们通常只关心的应该就是加载阶段,因为此阶段也是我们唯一可以进行控制的阶段。

      JVM规范中对何时进行类的加载并没有进行强制约束,但对于初始化阶段,JVM规范做了严格的规定的,就是当类首次被主动引用时,将进行类的初始化,引起类被主动引用有六种方式:

  • 实例化对象时,即我们通过的new一个实例,如MyClass myClass = new MyClass();时;
  • 对类变量进行读写操作时(final修饰的除外);
  • 调用类的静态方法;
  • 通过java.lang.reflect反射包对类进行反射调用时;
  • 实例化子类时,其父类必须先初始化;
  • 虚拟机启动时执行主方法的那个类必须初始化。

除上六种情况外,其它的都称为被动引用,不会引起类的初始化。

3、各阶段作用

  • 加载:把class文件(严格来说是字节流)从加载到内存,然后转化为运行时数据区域中方法区的数据结构,再到堆中生成一个java.lang.Class对象,做为方法区类的数据类型的一种映射和访问入口;
  • 验证:用于加载到内存中的Class文件字节流结构符合JVM要求;
  • 准备:给类变量初始化为默认时,如int为0,boolean为false,references Object为null等;
  • 初始化:给类变量赋与程序给定的初始值。

从上面注意到,类变量是在类不存在实例时就进行初始化的,因为类变量与实例无关,并且其赋值经过两个阶段,一是准备阶段,二是初始化阶段。如声明static int a=3;其在准备阶段赋值为了a=0;再初始化阶段才真正赋值为a=3;的。

分享到:
评论

相关推荐

    JVM类加载机制详细讲解

    总结,JVM 类加载机制是Java平台的核心特性之一,它确保了程序的稳定运行和动态扩展能力。理解类加载器的工作原理和双亲委派模型对于优化程序性能、解决类冲突以及构建复杂的模块化系统至关重要。在实际开发中,掌握...

    JVM实战-JVM类加载机制案例分析

    ### JVM实战-JVM类加载机制案例分析 #### 实验背景与目标 本次实验的主要目的是深入理解Java虚拟机(JVM)中的类加载机制。通过实践操作,掌握类的加载、连接与初始化过程,了解不同类型的类加载器及其工作原理,...

    从JDK源码级别剖析JVM类加载机制

    Java虚拟机(JVM)是Java程序运行的基础,它的类加载机制是理解Java应用程序如何启动和执行的关键部分。本文将深入JDK源码,详细解析JVM类加载机制的各个环节,帮助开发者更好地理解和优化自己的代码。 类加载机制...

    性能调优专题-jvm类加载机制-performance-jvmclassloader.zip

    在Java开发中,JVM(Java虚拟机)的类加载机制是至关重要的,因为它负责将类的字节码转换为运行时的实例。本专题"性能调优专题-jvm类加载机制-performance-jvmclassloader"深入探讨了如何通过理解并优化类加载过程来...

    JVM类加载机制1

    Java虚拟机(JVM)的类加载机制是Java运行时环境的重要组成部分,它负责将类的字节码文件加载到内存中,进行一系列处理并使其成为可执行的Java类型。这个过程包括五个主要阶段:加载、验证、准备、解析和初始化。 1...

    Java中的JVM类加载机制详解

    JVM的类加载机制是Java程序运行的基础,它包括加载、验证、准备、解析和初始化等阶段。通过理解类加载机制,我们可以更好地管理类的生命周期,实现动态加载和卸载类,以及优化程序的性能。随着Java技术的不断发展,...

    锁以及jvm类加载机制

    锁以及jvm类加载机制

    JVM类加载过程.pptx

    JVM的类加载机制是JVM的核心机制之一,它把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初识化,形成可以被虚拟机直接使用的Java类型。 Java代码执行流程是JVM的核心流程之一,它首先通过...

    详解JVM类加载机制及类缓存问题的处理方法

    类缓存的主要问题在于,如果JVM加载了同名的类,会出现类冲突问题。解决类缓存问题的方法有多种,例如使用不同的类加载器加载同名的类,或者使用不同的命名空间来避免类冲突。 在JVM中,类加载器会将类加载到内存中...

    一文读懂Jvm类加载机制

    "Jvm类加载机制详解" Jvm类加载机制是Java虚拟机(JVM)中一个非常重要的机制,它负责将编译后的Java类文件加载到JVM中,并对其进行验证、准备、解析、初始化和卸载等操作。 类加载机制的生命周期可以分为五个阶段...

    JVM类加载机制详解

    JVM类加载机制是Java虚拟机运行时加载类的核心过程,它负责将.java编译后的字节码文件(.class)转换为内存中的类实例。本文详细阐述了这个机制,包括其工作流程、特点以及如何自定义类加载器。 首先,我们来看一下...

    Java类加载原理解析

    了解类加载机制对于解决这类问题至关重要,同时也有助于深入理解Java虚拟机(JVM)的工作原理。 Java 类加载机制主要由类加载器完成。JVM内置了三种预定义的类加载器: 1. **启动类加载器(Bootstrap ClassLoader...

    JVM类加载机制原理及用法解析

    JVM类加载机制原理及用法解析 JVM类加载机制是Java虚拟机的一个核心机制,它负责将Java类从.class文件加载到内存中,并对其进行链接、初始化等操作。在Java中,类加载机制是一个非常重要的机制,它直接关系到Java...

    jvm的类加载机制详解

    jvm的类加载机制详解

    JVM类加载分析

    Java虚拟机(JVM)是Java程序运行的核心,而类加载机制则是JVM实现程序动态加载和执行的关键部分。在深入理解Java虚拟机的工作原理时,类加载机制是一个不可忽视的重要知识点。这篇博客将探讨JVM如何加载、连接和...

    深入研究Java类加载机制 深入研究Java类加载机制

    Java类加载机制是Java程序运行的第一步,它对于理解Java虚拟机(JVM)的行为至关重要。类加载过程涉及到类的加载、链接(验证、准备、解析)、初始化等阶段,并且这一过程是由类加载器系统完成的。 #### 二、类加载...

    JVM调优篇.pdf

    JVM类加载机制详解 JVM类加载机制是Java虚拟机中的一种机制,它负责加载Java类文件到内存中,以便执行Java程序。类加载机制分为五个阶段:加载、验证、准备、解析和初始化。 加载 加载是类加载过程中的一个阶段,...

    JVM执行子系统原理

    通过对JVM执行子系统原理的深入分析,我们不仅了解了Class文件的具体结构和字节码指令的基本概念,还探讨了类加载机制的各个环节以及字节码执行引擎的核心组成部分。这些知识点对于深入理解JVM的工作原理、优化程序...

    JAVA-JVM-01类加载机制

    《JAVA-JVM-01类加载机制》 Java虚拟机(JVM)是Java程序运行的基础,其中类加载机制是其核心组成部分。本文将深入剖析Java中的类加载器和双亲委派机制,并通过示例讲解如何自定义类加载器。 类加载过程是Java程序...

Global site tag (gtag.js) - Google Analytics