🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在java中,一个java类将会编译成一个class文件。 1. 在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。 比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。 而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。 2. 也就是说,符号引用是在编译时被用来当类的内存地址的(也就是说符号引用就是内存地址)然后会在类装载进JVM时,在类装载第2步的链接中,链接的第三步解析中,就会将类的真正内存地址换掉符号引用