`
caimaozhen
  • 浏览: 3390 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

类加载过程

    博客分类:
  • J2SE
 
阅读更多

一.类加载过程

当类不被用到的时候,什么都不提前加载, 
一旦类被使用到,首先加载的是它的静态变量,然后是静态初始化块,静态方法。 
当此类要被构造一个对象的时候,即被new,或者用反射生成其对象的时候,加载其成员部分。依次为成员变量(即非静态变量)、非静态初始化块、非静态方法、最后才是构造器。 
成员部分除方法外,每个对象都有其一份副本,其中,非静态方法并不是每个对象都有一个,而是所有对象共享一个副本,这点要注意。 
静态部分一旦被加载,就不会被销毁,直到程序结束,关闭虚拟机。 
非静态的,即,被各个对象所拥有的东西,当对象不被引用时,这个类就结束了他的生命周期。 
但是,它还要在内存中驻留一段时间,等垃圾处理器来将它清除。 
在失去引用后,被垃圾处理前的这段时间,虽然它驻留在内存中,但是没法被再次引用。

 

eg

package com.sam.j2se;

public class StaticLoader {
    public static int i = 2;
    static {
         System.out.println("静态语句块开始加载..." + i);;
    }
    public int j = 9;
    {
        System.out.println("语句块开始加载..."+j);
    }
   
    public StaticLoader() {
        System.out.println("构造函数开始加载...");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        StaticLoader sl = new StaticLoader();

    }

}
静态语句块开始加载...2
语句块开始加载...9
构造函数开始加载...

分享到:
评论

相关推荐

    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