zoukankan      html  css  js  c++  java
  • 【类加载器学习】

    (注意) 虚拟机只加载程序执行时所需要的类文件。我们假设加载Demo.class文件开始

    1、虚拟机有一个用于加载类文件的机制,例如,从磁盘上读取文件或者请求web上的文件,使用该机制加载Demo.class文件的内容。

    2、如果Demo类拥有类型为另一个类的域,或者是拥有超类,那么这些类文件也会被加载,(加载某个类所依赖所有类的过程称为类的解析)

    3、接着虚拟机执行Demo的main方法(他是静态的,无需创建类的实例)

    4、如果main方法或者main方法调用的方法要用到更多的类,那么接下类就会加载这些类。

    然而,类加载机制并非只是使用单个的类加载器,每个java程序至少拥有是三个类加载器
    引导类加载器

    拓展类加载器

    系统类加载器

    引导类加载器负责加载系统类(通常从rt.jar中进行加载),它是虚拟机不可分割的一部分,而且

    通常是用c语言实现的,引导类加载器没有对应的ClassLoader对象,例如该方法

    拓展类加载器用于从jre/lib/ext 目录加载标准的拓展,可以将jar文件放入改目录。这样即使没有任何类路径,拓展类加载器也可以找到其中的各个类,

    系统类加载器用于加载应用类,他是有classpath环境变量或者-classpath命名行选项设置的类路径中的目录是Jar/ZIp文件里查找这些类。

  • 相关阅读:
    Linux查看所有用户用什么命令
    Sudoku Solver
    Restore IP Addresses
    Implement strStr()
    Insert Interval
    Recover Binary Search Tree
    First Missing Positive
    Rotate List
    Longest Palindromic Substring
    4Sum
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860963.html
Copyright © 2011-2022 走看看