java类加载过程(java类加载过程)

ゝ一世哀愁。 2023-09-26 15:30 289阅读 0赞

Java加载类的机制是怎样的?

sun。com/developer /TechTips/2000/tt1027。html

Writing Your Own Class Loader

The loadClass method of the ClassLoader superclass takes care of the delegation to

the parent and calls findClass only if the class hasn’t already been loaded and

if the parent class loader was unable to load the class。

java类加载过程(java类加载过程)\_java类加载过程(java类加载过程)

什么是java类加载机制?

getParent方法返回的是上级类加载器

ExtClassLoader,但是,从类文件的观念看,他们不是继承关系,只能看做引用关系

在加载的时候,如果在我这一层,首先会去找父亲,看看他加载了没,父亲再找父亲的父亲加载了没,

没有才一步步下来,最后由我自己加载,这里讲父亲,不是父类!,有点子债父还的意思

好处是安全,因为classLoader也是个类,所以如果不用这个机制,想解析一个很简单的类,写病毒的人可以自己写个classLoader用来解析这些本来系统自带的ClassLoader就可以解析的类在里面加点病毒代码,这样解析一些简单的类的时候,它会去找加载器,找到了我自己写的病毒Classloader,如果加载的话就出事了,java这个体系,它即使找到了病毒Classloader,也不会立刻使用,它会往上找如果他的长辈(系统自带的能解析这个类的ClassLoader)能加载,就由系统解决了,就用不上这个病毒ClassLoader类了,所以说,比较安全!。

java中类的加载是在什么时候做的

楼上的负责一点好么,类加载是在编译的时候?加载一个类需要用到加载器,

你程序都没运行,jvm都没启动,哪来的加载器,你拿什么去加载一个类?

类加载的时候是运行程序时 它就加载了,至于编译,你用IDE,是你一保存,它就给编译好了。实例化的时候,

如:class A

A a = new A();这个时候会被加载这个问题java的比较核心的一个难题,我就针对问题做简要回答,不做深入讨论了:

1、编译和运行概念要搞清:编译即javac的过程,负责将.java文件compile成.class文件,主要是类型、格式检查与编译成字节码文件,而加载是指java *的过程,将.class文件加载到内存中去解释执行,即运行的时候才会有加载一说。

2、类的加载时机,肯定是在运行时,但并不是一次性全部加载,而是按需动态,依靠反射来实现动态加载,一般来说一个class只会被加载一次,之后就会从jvm的class实例的缓存中获取,谁用谁取就可以了,不会再去文件系统中加载.class文件了。

明白1,2点就够了,再深入要等一段才能明白了。

java类加载过程(java类加载过程)\_java类加载过程(java类加载过程)\_02

java类的加载顺序??

父类到子类

静态到非静态java类加载顺序: 先父类的static成员变量-》子类的static成员变量-》父类的成员变量-》父类构造-》子类成员变量-》子类构造。 static out是方法,方法只有再调用的时候才执行里面的代码。 这个说的很对运用的时候用java -verbose 加你的包名,类名classpath

jdk\lib\jre\ext

jdk\lib问题没有描述清楚,别人怎么回答你呀。

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java过程

    目录 概述 类加载时机 类加载过程 加载 验证 文件格式验证 元数据验证 字节码校验 符号引用校验 准备 解析 初始化 类加载器 双亲委派模型

    相关 Java过程

    一、前言 我们都知道计算机的底层逻辑都是0和1的编码,当然除了现在所研究的量子计算除外。那么我们在计算机所做的一切操作,底层原理是不是都可以翻译到0和1呢。如果刨根问底的话,

    相关 Java 过程

    在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备、解析 装载:查找和导入类或接口的二进制数据;

    相关 Java过程

    类的加载简介 1.类加载一般分为三大阶段:加载、连接和初始化 ![类加载三个大阶段(图来自zejian\_)][zejian] 加载阶段:主要查找class文件(二

    相关 Java过程

    Java类加载过程 首先是加载过程(Loading),它是 Java 将字节码数据从不同的数据源读取到 JVM 中,并映射为 JVM 认可的数据结构(Class 对象),...