本文主要是介绍JVM虚拟机之类加载--关于接口加载的不同见解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先是书上 或者各种资料上有这样一段话,但是个人认为有问题,接口加载应该与类加载的规则一致,即:
- 初始化一个类 时,会先初始化它所实现的接口
解析如下:
因为接口中定义静态变量,默认 属性为public static final, 若在接口类中定义常量,则 在加载时,会 将常量存入 加载的类的运行时的数据区的方法区内,导致不会初始化接口。可以按一下步骤进行测试:
public class ClassLoadTest3 {public static void main(String[] args) {System.out.println(myStudent3.str2);}
}interface myParent3 {//public static final String str = UUID.randomUUID().toString();public static final String str = "hello";
}class myStudent3 implements myParent3{public static String str2 = UUID.randomUUID
这篇关于JVM虚拟机之类加载--关于接口加载的不同见解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!