当前位置: 首页 > news >正文

Java类加载器加载类顺序

 

java ClassLoader的学习

java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执行,.class字节码文件本身是平台无关的,但是jvm却不是,为了实现所谓的一次编译,到处执行,sun提供了各个平台的JVM实现--也就是说jvm不是跨平台的,编译好的字节码文件被放在不同的操作系统平台上的jvm所解释执行,这个章节主要解释一下JVM装载类的机制

1.ClassLoader是个毛东东?

    一个类如果要被JVM所调度执行,必须先把这个类加载到JVM内存里,java.lang下有个很重要的类ClassLoader,这个类主要就是用来把指定名称(指定路径下)的类加载到JVM中

2.ClassLoader的分类

   主要分4类,见下图橙色部分

   JVM类加载器:这个模式会加载JAVA_HOME/lib下的jar包

   扩展类加载器:会加载JAVA_HOME/lib/ext下的jar包

   系统类加载器:这个会去加载指定了classpath参数指定的jar文件

   用户自定义类加载器:sun提供的ClassLoader是可以被继承的,允许用户自己实现类加载器

   类加载器的加载顺序如图所示:

启动顺序

 

3.类加载顺序

  JVM并不是把所有的类一次性全部加载到JVM中的,也不是每次用到一个类的时候都去查找,对于JVM级别的类加载器在启动时就会把默认的JAVA_HOME/lib里的class文件加载到JVM中,因为这些是系统常用的类,对于其他的第三方类,则采用用到时就去找,找到了就缓存起来的,下次再用到这个类的时候就可以直接用缓存起来的类对象了,ClassLoader之间也是有父子关系的,没个ClassLoader都有一个父ClassLoader,在加载类时ClassLoader与其父ClassLoader的查找顺序如下图所示

类查找顺序

 

 

转载于:https://www.cnblogs.com/javaexam2/archive/2011/03/30/2632556.html

相关文章:

  • UML类图小结
  • 系统动力学软件vensim之指数增长
  • 系统动力学软件vensim学习之一阶负反馈
  • 数字水印学习教程
  • Nature Science 2010-2011年全部期刊下载链接
  • QTE安装汉化添加新程序全过程
  • 努力我可以
  • linux 与 虚拟机共享数据
  • GNU make指南
  • Linux扩展swap分区大小
  • 实现了回写功能---报表工具功能之一
  • 分析两种实现多线程的方式:Thread类和Runnable接口
  • 直接来我的私人博客吧
  • Ado.Net读取Excel常见问题总结
  • 某店铺收银系统开发总结
  • CSS相对定位
  • FastReport在线报表设计器工作原理
  • Flex布局到底解决了什么问题
  • iOS 系统授权开发
  • JavaScript 奇技淫巧
  • JDK 6和JDK 7中的substring()方法
  • JS题目及答案整理
  • MySQL数据库运维之数据恢复
  • opencv python Meanshift 和 Camshift
  • Puppeteer:浏览器控制器
  • Ruby 2.x 源代码分析:扩展 概述
  • Terraform入门 - 1. 安装Terraform
  • yii2权限控制rbac之rule详细讲解
  • 大整数乘法-表格法
  • 订阅Forge Viewer所有的事件
  • 基于Android乐音识别(2)
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 区块链分支循环
  • 自制字幕遮挡器
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • PostgreSQL之连接数修改
  • ​configparser --- 配置文件解析器​
  • ​插件化DPI在商用WIFI中的价值
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (简单) HDU 2612 Find a way,BFS。
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)插入排序
  • .net Application的目录
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET开发者必备的11款免费工具
  • .sdf和.msp文件读取
  • /bin、/sbin、/usr/bin、/usr/sbin
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [20160807][系统设计的三次迭代]
  • [20180224]expdp query 写法问题.txt