一个类被多个加载器加载
时间: 2024-04-01 16:32:05 浏览: 13
一个类可以被多个类加载器加载,但是每个加载器只会加载一份独立的类,并且这些加载器之间是互相独立的。例如,在一个 Java 应用程序中,可以有多个类加载器,其中父类加载器可以加载一组类,而子类加载器可以加载另一组类。如果一个类被父类加载器加载了,那么同样的类也可以被子类加载器加载,但是这两个类是不同的,它们被不同的加载器加载,所以在 JVM 中会存在多个不同的类,它们虽然名字相同,但是它们的类加载器不同,所以它们是不同的类。
相关问题
一个类多次实例化,类会被加载几次呢
一个类只会被加载一次,无论这个类被实例化了多少次。类加载器在加载一个类时,会先检查该类是否已经被加载过,如果已经加载过,就直接返回该类的Class对象,否则才会对该类进行加载。因此,即使一个类被实例化多次,它也只会被加载一次。
jvm加载多个类,类之间的顺序怎么确定
JVM加载多个类时,类之间的顺序是由类的依赖关系决定的。如果类A依赖于类B,则在加载类A之前必须先加载类B。如果类A和类B相互依赖,则需要根据具体情况来决定加载顺序,这通常是由编译器或者类加载器来解决的。
在Java中,类的依赖关系通常通过import语句来表示。当编译器编译一个Java文件时,它会先检查这个文件所依赖的其他类是否存在。如果存在,则编译器会将这些类编译成字节码文件,并将它们打包成一个JAR文件或者放置在一个目录中。当JVM加载这个Java文件时,它会按照依赖关系,先加载依赖的类,然后再加载当前类。
总之,类之间的加载顺序是由类的依赖关系决定的,这是由编译器和类加载器来解决的。