`

类加载过程

    博客分类:
  • Java
阅读更多
从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用、卸载共7个阶段。

  加载、验证、准备、初始化和卸载这5个阶段顺序是一定的,类的解析阶段则不一定。

  验证、准备、解析均属于类加载阶段的连接阶段。

  1、类加载的过程
  加载阶段是类加载过程的一个阶段,不要被混淆,在加载阶段需完成:
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口。

  2、验证
  是连接阶段的第一步,确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。

  3、准备
  正式为类变量分配内存并设置类变量初始化的阶段,这些内存将在方法区进行分配。进行内存分配的仅包含类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配到Java堆中。这里的初始值“通常情况”是数据类型的零值。真正的赋值应该在初始化阶段才会被执行。

  4、解析
  此阶段是虚拟机将常量池中的符号引用替换为直接引用的过程。
  符号引用--转变为-->直接引用。

  5、初始化
  到了这阶段,才真正执行类中定义的Java程序代码(或者说是字节码)。
在准备阶段已经赋过一次系统要求的初始值,而在初始化阶段,则是根据程序员通过程序制定的主观计划去初始化类变量和其他资源。
  初始化阶段是执行类构造器<clint>()方法的过程。
 
  6、使用(略)
 
  7、卸载(略)

分享到:
评论

相关推荐

    weblogic类加载过程简述

    下面我们将详细探讨WebLogic的类加载过程。 1. **类加载器层次结构** WebLogic的类加载器体系遵循“父类加载器优先”原则,这意味着当一个类加载请求发生时,首先由父类加载器尝试加载,只有在其无法找到相应类时...

    第23讲请介绍类加载过程,什么是双亲委派模型1

    Java 类加载过程是Java程序运行时的关键环节,它涉及到如何将类的字节码加载到JVM中并准备执行。整个过程可以分为五个主要步骤:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)和...

    JVM类加载过程.pptx

    JVM类加载过程 JVM(Java Virtual Machine)是Java语言的核心组件之一,它是Java语言的可移植性和跨平台性的基础。JVM主要组成部分包括类加载子系统、执行引擎、本地方法接口和运行时数据区。 类加载子系统是JVM的...

    Java类加载流程(双亲委派)流程图.zip

    流程图通常会清晰地展示出类加载的整个过程。在“Java类加载流程(双亲委派)流程图.jpg”中,我们可以期待看到以下内容: 1. **启动类加载器(Bootstrap ClassLoader)**:这是最顶层的加载器,负责加载JDK的核心库...

    JVM(三):类加载机制(类加载过程和类加载器)1

    类加载器在类加载过程中扮演重要角色,它负责找到类的字节流并将其转换为运行时可用的形式。系统提供了几个内置类加载器,如Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和...

    SpringBoot 类加载过程,源码分析

    SpringBoot 类加载过程详解 在深入探讨Spring Boot的类加载过程之前,让我们先理解一下类加载的基本概念。Java中的类加载是由JVM(Java虚拟机)执行的,它负责将类的字节码加载到内存中,进行校验、解析,并准备类...

    java类加载过程详解.doc

    Java 类加载过程是Java虚拟机(JVM)在运行时动态加载类的机制,它涉及类的生命周期中的几个关键步骤,包括装载、连接、初始化和卸载。下面将详细阐述这些过程。 1. 装载 装载阶段是类加载的起始点,主要分为三个...

    java类加载器

    #### 二、类加载过程 类加载过程主要包括三个步骤: 1. **加载**:通过类的全限定名找到该类的二进制字节流。 2. **连接**: - **验证**:确保加载的类文件符合JVM规范,包括字节流文件的格式正确性、元数据的...

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

    类加载过程涉及到类的加载、链接(验证、准备、解析)、初始化等阶段,并且这一过程是由类加载器系统完成的。 #### 二、类加载器系统 Java中的类加载器系统主要包括以下几种类型的类加载器: 1. **Bootstrap ...

    自定义类加载器实现自定义加载

    - 类加载过程分为三个阶段:加载、验证、准备、解析和初始化。在加载阶段,类加载器寻找并加载类的二进制数据。 - Java中的类加载器采用双亲委派模型,即一个类首先由启动类加载器Bootstrap ClassLoader尝试加载,...

    Android-Android热修复框架基于类加载机制的代码修复

    - 类加载过程包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)和初始化(Initialization)五个阶段。 - Android系统使用双亲委派模型进行类加载,即先由父加载器尝试加载,...

    类加载的工具

    类加载工具则是辅助开发者理解和分析类加载过程的实用程序。这些工具可以帮助我们定位类的来源,查看加载顺序,以及优化应用的性能。 标题中的“类加载的工具”可能指的是用于监控和分析类加载过程的各种工具。在...

    Java虚拟机----类的加载过程.docx

    Java虚拟机(JVM)的类加载过程是Java程序运行的基础,它涉及到类加载器、类的生命周期和一系列复杂的步骤。在这个过程中,类加载器主要任务是根据类的全限定名加载二进制字节流并转化为`java.lang.Class`对象。整个...

    Java类加载器原理

    Java 类加载器原理 Java 类加载器是Java虚拟机...类加载器的机制保证了Java的类加载过程是有序且安全的,同时也支持了Java的动态加载和模块化特性。在自定义类加载器时,需要遵循这些规则,以便正确地扩展JVM的功能。

    Java类加载原理解析

    当遇到`java.lang.ClassNotFoundException`异常时,通常是因为类加载过程出现了问题。了解类加载机制对于解决这类问题至关重要,同时也有助于深入理解Java虚拟机(JVM)的工作原理。 Java 类加载机制主要由类加载器...

    Java类加载内幕详细讲解

    #### 五、类加载过程详解 类加载的过程主要分为三个阶段:加载(Loading)、连接(Linking)和初始化(Initialization)。 1. **加载**(Loading): - 类加载器查找并加载类的二进制流。 - 创建`java.lang....

    自定义类加载器

    自定义类加载器是Java平台灵活性的体现,它允许开发者对类加载过程进行扩展和定制,满足特殊需求。理解类加载器的工作原理和如何创建自定义类加载器对于优化应用程序和实现高级功能至关重要。在实际开发中,根据项目...

    JVM类加载机制详细讲解

    类加载过程中可能会遇到一些问题,如类冲突、类循环依赖等。类冲突通常发生在不同加载器加载了相同包名下的类,导致版本不一致。类循环依赖则可能引发无限递归,使得类加载失败。解决这些问题通常需要对类加载器的...

    类加载器加载过程.rar

    类加载过程包括三个主要阶段:加载、验证、准备、解析和初始化。 1. 加载:类加载器读取类的二进制数据,这些数据通常来自.class文件,也可能来自网络、数据库或其他数据源。 2. 验证:确保加载的类数据符合Java...

Global site tag (gtag.js) - Google Analytics