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