`
xieyj
  • 浏览: 99916 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

类的加载

阅读更多

    类通过(*env)->FindClass,也就是hotspot/src/share/vm/prims/jni.cpp的jni_FindClass来执行,在里面首先找到loader实例,之后进入find_class_from_class_loader,通过SystemDictionary::resolve_or_fail来解释类文件。在里面区分两种情况FieldType::is_array,是true调用resolve_array_class_or_null,否则调用resolve_instance_class_or_null。

    先判断类是否存在dictionary()->find,如果存在了,就直接返回了。没有存在,则进行解析,解析之前需要获取一个锁,保证只有一个解析动作在进行。实际加载load_instance_class,这里面就涉及了类加载器的内容,如果定义了类加载器,通过

       javaCalls::call_virtual(&result,
                              class_loader,
                              spec_klass,
                              vmSymbolHandles::loadClass_name(),
                              vmSymbolHandles::string_class_signature(),
                              string,
                              CHECK_(nh));

调用类加载器的loadClass方法。我们在这主要看一下vmClassLoader-----ClassLoader::load_classfile。

     具体解释通过ClassFileParser的parseClassFile完成。

     有几个需要关注的数据结构

        Klass_vtbl

               |——Klass

                         |——instanceKlass

                                         |——instanceKlassKlass

 

分享到:
评论

相关推荐

    ClassLoader类加载机制

    类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...

    java类加载器实例

    类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...

    Java类加载原理解析

    每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是...

    自定义Java类加载器

    看完一个Java加载原理教程后,写了这个自己的类加载器,作个笔记,以便以且使用

    ModRunJava类加载器可以直接从Maven存储库加载并运行类

    Java类加载器可以直接从Maven存储库加载并运行类,能在运行时解决依赖关系

    自定义类加载器实现自定义加载

    自定义类加载器实现自定义加载。自定义类加载器实现自定义加载

    Java虚拟机类加载顺序

    Java虚拟机类加载顺序,Java虚拟机类加载顺序,Java虚拟机类加载顺序

    深入研究Java类加载机制 深入研究Java类加载机制

    深入研究Java类加载机制 深入研究Java类加载机制 深入研究Java类加载机制 深入研究Java类加载机制

    java类加载机制.xmind

    该文件是JVM中关于类加载机制的知识整理的思维导图,包括类加载机制概述、类加载的生命周期、加载时机、加载过程、类加载、类的初始化和实例化等几个大方面进行了讲解,其中类加载中还对JVM三种预定义类加载器进行了...

    java类加载原理分析

    java类加载原理分析,引导类加载器,扩展类加载器,系统类加载器(也叫应用类加载器)

    Java类加载机制与反射-PPT

    Java的类加载机制:加载,连接,初始化。JAVA类加载器: Bootstrap ClassLoader : 根类加载器, Extension ClassLoader: 扩展类加载器, System ClassLoader : 系统类加载器, Java反射

    02 类加载子系统.pptx

    02 类加载子系统 PPT 介绍 JVM 的类加载子系统, 包括类加载阶段和流程、加载器分类和类加载机制等。

    Tomcat7 启动类加载日志

    Tomcat7.0.62 启动类加载日志

    tomcat类加载器

    DevLoader.zip tomcat 类加载器

    java类加载器学习三、类加载器的委托模式

    java类加载器学习三、类加载器的委托模式

    java 类加载器 加密

    java 类加密 使用类加载器解密加载类 反射执行main

    类加载的工具

    类加载分析工具,在应用部署后,可找出是哪个类呗加载了,在那个目录或者jar中,内部资料

    类加载器(java)

    当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构,理解类加载器:J2EE 环境下的 log4j.files

    虚拟机类加载机制

    经典的java虚拟机类加载机制 看完后会有醍醐灌顶的感觉

    自定义类加载器

    简单的自定义类加载器问候世界hello word,基于磁盘的ClassLoader

Global site tag (gtag.js) - Google Analytics