`
suky
  • 浏览: 145381 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

JVM中如何加载Class

阅读更多

      在运行编译后的.class文件时或者导入第三方jar包时,有时候会抛出java.lang.ClassNotFoundException异常。我们很熟悉知道这是JVM加载class失败时抛出的异常,可是我一直没去关注虚拟机自动加载类的一些原理。




 

     从打印出的异常信息中,我们可以看出被加载的类文件的信息,编译器加载类要依靠类加载器classloader机制。了解JAVA发展史的人都知道,JAVA最初是为嵌入程序开发的,classLoader机制,是为了节约嵌入式开发环境下内存而设计的。  而classloader有3个级别,从高到低分别是


BootClassLoader: 对应jre/classes路径 
ExtClassLoader:对应jre/lib/ext路径
AppClassLoader:对应当前路径

还有更外层的URLClassLoader,防止恶意攻击由URL加载进来的类文件。

     虚拟机为不同的类加载器载入的类提供不同的命名空间,命名空间由一系列唯一的名称组成,每一个被装载的类将有一个名字,这个命名空间是由Java虚拟机为每一个类装载器维护的,它们互相之间甚至不可见。

  • 大小: 7.1 KB
分享到:
评论

相关推荐

    jvm 加载class文件

    Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 .

    JVM加载class文件的原理机制

    JVM加载class文件的原理机制 Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中

    JVM类加载跟踪器

    JVM类加载跟踪器,用于排查jar包冲突、类冲突、类版本冲突、NoClassDefFoundError、ClassNotFoundException 等等类加载相关问题的辅助工具

    codeegginterviewgroup#CodeEggDailyInterview#84.JVM加载class文件的原理机制

    JVM加载class文件的原理机制JVM加载class文件的原理机制 JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加

    JVM中编译Class、内存回收、多线程原理和使用

    class文件通常由类加载器(ClassLoader)来完成加载;class的执行在Sun JDK中有解释执行和编译为机器码执行两种方式,其中编译为机器码又分为client和server两种模式。Sun JDK为了提升class的执行效率,对于解释执行...

    JVM加载class文件的原理机制.pdf

    JVM加载class文件的原理机制.pdf

    《 从NoSuchMethodError看jvm编译和class加载方式》的测试项目代码

    《 从NoSuchMethodError看jvm编译和class加载方式》的测试项目代码

    Java虚拟机JVM类加载初始化

    1):本地编译好的class中直接加载 2):网络加载:java.net.URLClassLoader可以加载url指定的类 3):从jar、zip等等压缩文件加载类,自动解析jar文件找到class文件去加载util类 4):从java源代码文件动态编译成为...

    动态编译字符串成java,并且添加class到jvm

    动态编译字符串成java,并且添加class到jvm

    【JVM】类加载器与双亲委派模型

    内嵌在JVM内核中的加载器,由C++语言编写(因此也不会继承ClassLoader),是类加载器层次中最顶层的加载器。用于加载java的核心类库,即加载jre/lib/rt.jar里所有的class。由于启动类加载器涉及到虚拟机本

    JVM执行子系统原理

    详细介绍了JVM执行子系统的工作原理,包括类文件结构与字节码指令(Class类文件结构、JVM字节码指令简介)、JVM类加载机制(类加载器、类加载时机、类加载过程)、字节码执行引擎(运行时候的栈结构、方法调用、方法...

    JVM性能优化相关面试题21道.pdf

    JVM 面试题:Java 类加载过程、JVM 加载 Class 文件的原理机制、Java内存分配

    share-code-loaded:JVM代码字节热加载

    工作原理基于jdk代理方式,实现JVM的Instrumentation进行premain或agentmain代理加载以及TransformerManager的transform方法进行翻译,对增加的class进行listener,对已有class文件内容变化lastModified进行实时...

    高级开发jvm面试题和答案.pdf

    类加载过程(类加载从磁盘上将字节码文件(.class文件)中的内容读入虚拟机,并保存起来) 类加载特性 ; 类加载的时机: 三种类加载器: 双亲委派机制概念; 怎么解决双亲委派机制; 垃圾回收gc gc的标记方法; java...

    JVM入门到JVM 调优实战

    第二节:详解Class加载过程 ················································· 19 第三节:Java内存模型 ·························...

    面试必问之jvm与性能优化

    1. 描述一下 JVM 加载 Class 文件的原理机制? 在面试java工程师的时候,这道题经常被问到,故需特别注意。 Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class...

    轻松搞定jvm类加载器

    而**当我们需要用到某个类时,jvm将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。**过程如下: 类的加载、连接、初始化 1. 加载 通过类的包名和雷鸣查找到此类的字节码文件,将xx.class文件...

    JVM常量池教程吐血整理干货.md

    运行时常量池是在类加载阶段,将class二进制数据加载到内存, 并将数据保存到方法区,其中class文件中的常量池将保存到 运行时常量池(数据都在方法区,常量池肯定也在方法区)。 也就是说一个Class文件常量池对应一个...

    wanglijun93#AndroidNote#JVM类加载器1

    第一阶段要验证字节流是否符合Class文件格式的规范,并且能被当前版本的虚拟机处理 第二阶段是对字节码描述的信息进行语义分析,以保证其描述的信息符合Java语言

    Javac测试题123456

    用于Java测试,包含基础概念和改错题目,改错不一定有错喔!

Global site tag (gtag.js) - Google Analytics