zoukankan      html  css  js  c++  java
  • java类加载过程

    系统会通过加载,连接,初始化三个步骤来对该类进行初始化操作:
    ①类的加载:
    类加载时指将类的class文件(字节码文件)载入内存中,并为之创建一个java.lang.Class对象,我们称之为字节码对象.
    类的加载过程由类加载器(ClassLoader)完成,类加载器通常由JVM提供,我们称之为系统类加载器,我们也可以继承ClassLoader类来提供自定义类加载器.
    不同的类加载器可以实现加载本地字节码文件,jar包中的字节码,通过网络加载字节码等.
    ②类的连接:
    当类被加载进内存之后,系统为之生产一个对应的Class对象,接着把类的二进制数据合并到JRE中.
       1>:验证:检测被加载的类是否有正确的内部结构.
       2>:准备:负责为类的static变量分配内存,并设置默认值.
       3>:解析:把类的二进制数据中的符号引用(变量)替换为直接引用(深入分析JVM).
    ③类的初始化:
    在此阶段,JVM负责对类进行初始化,主要对static变量进行初始化. 类的初始化一个类包含几个步骤:
      1>:如果该类还未被加载和连接,则程序先加载并连接该类.
      2>:如果该类的直接父类还未被初始化,则先初始化其父类.
      3>:如果类中有初始化语句(静态代码块),则系统依次执行这些初始化语句.
  • 相关阅读:
    一些名词的解释
    开源代码从哪里获取
    Joomla软件及其类似物
    js常用随手记
    常用且难记的一些css
    阿里云ecs使用补充说明
    那些年踩过的坑之移动端
    一个题目引发的闭包、函数声明以及作用域的简单思考
    浅析toString()和toLocaleString()的区别
    由[]==![]说开去
  • 原文地址:https://www.cnblogs.com/tinyj/p/10130243.html
Copyright © 2011-2022 走看看