• 【类加载器学习】


    (注意) 虚拟机只加载程序执行时所需要的类文件。我们假设加载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文件里查找这些类。

  • 相关阅读:
    Java入门
    Java入门
    字符串常用方法(转载--https://www.cnblogs.com/ABook/p/5527341.html)
    SSM-8FastDfs搭建
    SSM7-nginx的反向代理和负载均衡
    SSM-6nginx Linux下的安装
    SSM-5zookeeper在LINUX上自启
    SSM4-Linux上jdk、tomcat、zookeeper------tar zxvf的安装
    SSM3-SVN的安装和搭建环境
    SSM2-搭建maven常见的错误以及解决方法
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860963.html
Copyright © 2020-2023  润新知