资讯专栏INFORMATION COLUMN

Java的classloader

Galence / 1208人阅读

摘要:的作用文件类装载器执行引擎本地方法操作系统文件可以来自网络服务器等途径,来源比较有可定制性。方法区生成该类代表的数据结构。

classloder的作用

.class文件-->类装载器-->执行引擎-->本地方法-->操作系统

class文件可以来自网络服务器等途径,来源比较有可定制性。比如zip文件,网络,甚至运行时动态生成的class

java类装载的委托模型

自定义装载器-->应用类装载器(用户程序的classpath)-->扩展类装载器-->启动类装载器

总是把类装载请求发给上一层,如果上层没有,再看自己有没有。

类文件和类装载器唯一确定一个类(即类装载器运行时的命名空间)

defineClass方法
传递给这个方法一个合法的字节数组,就可以转化成class对象

类加载

加载-->连接-->初始化

加载:通过类的全限定名找到类的二进制流。方法区生成该类代表的数据结构。内存生成该类的对象,作为方法区各种数据结构的外部接口

连接里有3步

验证 对格式,元数据,字节码,符号引用进行验证

准备 将类的静态变量进行内存分配和赋初值

解析 将类中的符号引用转化为直接引用

初始化
调用类的clinit构造器方法

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71668.html

相关文章

  • 浅谈java classloader

    摘要:类加载器三杰有三类,分别是以及。线程上下文类加载器线程上下文类加载器可以不遵循双亲委派机制。免费领取验证码内容安全短信发送直播点播体验包及云服务器等套餐更多网易技术产品运营经验分享请访问网易云社区。文章来源网易云社区 本文由作者张远道授权网易云社区发布。 类加载器三杰 jvm有三类classloader,分别是bootstrap classloader,extended classlo...

    liuyix 评论0 收藏0
  • 详细深入分析 Java ClassLoader 工作机制

    摘要:作用负责将加载到中审查每个类由谁加载父优先的等级加载机制将字节码重新解析成统一要求的对象格式类结构分析为了更好的理解类的加载机制,我们来深入研究一下和他的方法。就算两个是同一份字节码,如果被两个不同的实例所加载,也会认为它们是两个不同。 申明:本文首发于 详细深入分析 ClassLoader 工作机制 ,如有转载,注明原出处即可,谢谢配合。 什么是 ClassLoader ? 大家...

    mdluo 评论0 收藏0
  • 猫头鹰深夜翻译:理解javaclassloader

    摘要:它们是通过来自远程的服务器的连接发送字节码并在本地运行,这一点令人兴奋。中有一个自定义的,它不是从本地文件系统加载类文件,而是从远程服务器上获取,通过加载原始字节码,再在中转化为类。它将字节码解析为运行时的数据结构,检查其有效性等。 前言 Java ClassLoader是java运行系统中一个至关重要但是经常被忽略的组件。它负责在运行时寻找并加载类文件。创建自定义的ClassLoad...

    Eminjannn 评论0 收藏0
  • Java: classLoader

    摘要:如果它们都没有加载到这个类时,则抛出异常。只有两者同时满足的情况下,才认为这两个是相同的。就算两个是同一份字节码,如果被两个不同的实例所加载,也会认为它们是两个不同。 简介 程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)来动态加载某个class文件到内存当中的,从而只有class文件被载入到了内存...

    bovenson 评论0 收藏0
  • 深入Spring Boot:ClassLoader继承关系和影响

    摘要:的打包结构改动是这个引入的这个的本意是简化的继承关系,以一种直观的优先的方式来实现,同时打包结构和传统的包应用更接近。目前的继承关系带来的一些影响有很多用户可能会发现,一些代码在里跑得很好,但是在实际部署运行时不工作。 前言 对spring boot本身启动原理的分析,请参考:http://hengyunabc.github.io/s... Spring boot里的ClassLoad...

    lifesimple 评论0 收藏0
  • Java反射-动态类加载和重新加载

    摘要:示例如下动态类重新加载动态类重新加载有一些挑战。为了上面代码的正常运行,你当然需要实现自己的类加载器,让接口或超类由其父类加载。 Java中可以在运行时加载和重新加载类,虽然并不像我们想像中那么简单。本文将解释何时、怎样在Java中加载、重新加载类。你可以争论动态加载类是Java反射的一部分还是Java核心的一部分。不管怎样,我把它放在了Java反射中,因为没有更好的地方放置它。 类加...

    nodejh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<