JAVA类的符号引用的理解

Posted 断腿三郎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA类的符号引用的理解相关的知识,希望对你有一定的参考价值。

个人理解,谨慎阅读

众所周知,jvm在创建实例对象时,首先要确保该类的class文件已经被加载到内存中了
然而java中的类,很少有完全单一的类,大部分的类都会使用import引用其他的类。
所以,在创建实例对象时,不光要保证该类的class文件已经被加载到内存中,还要保证引用的这些类已经被加载,并且知道他们的内存地址
那么,在编译期间,class文件中该如何存储引用的这些类的地址呢,要知道编译期谁都不知道自己会出现在内存的那一块啊
于是我们便引入了符号引用,这个应用并非真正标识了引用了的类的地址,而是仅仅标识引用了那些类。
在该类第一次创建时,才去加载相关引用类的地址(当然,如果某个引用的类还没在内存中,要先加载这个被引用的类)。

以上是关于JAVA类的符号引用的理解的主要内容,如果未能解决你的问题,请参考以下文章

JVM中的符号引用和直接引用

读《深入理解Java虚拟机》

Java中类加载器的分析与理解!详细解析类的加载过程

深入理解Java虚拟机类的初始化过程

深入理解java虚拟机HotSpot Java对象创建,内存布局以及訪问方式

java中类的理解