精华内容
下载资源
问答
  • 符号引用

    千次阅读 2019-06-17 14:20:11
    在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool...

          在java中,一个java类将会编译成一个class文件。在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。

    展开全文
  • JVM符号引用与直接引用

    千次阅读 2020-03-27 20:11:38
    符号引用符号引用是以一组符号来描述所引用的目标,符号中的字面量可以是任何形式的,只要可以无歧义的定位到目标即可。符号引用与虚拟机实现的内存布局是无关的。各个不同的虚拟机实现的内存布局可以是不一样的...

    符号引用:

    符号引用是以一组符号来描述所引用的目标,符号中的字面量可以是任何形式的,只要可以无歧义的定位到目标即可。符号引用与虚拟机实现的内存布局是无关的。各个不同的虚拟机实现的内存布局可以是不一样的,但是所能接受的符号引用的形式必须是一致的。因为符号引用中的字面量形式由java虚拟机规范中的class文件格式确定。

    直接引用:

    直接引用可以直接指向目标的指针、相对偏移量或者一个能间接访问到目标的句柄。直接引用是和虚拟机实现的内存布局直接相关的。每个符号引用在虚拟机实例上翻译出来的直接引用几乎都是不同的。如果存在直接引用,那么在虚拟机内存中必定会存在该引用目标

    展开全文
  • 1、什么是符号引用和直接引用 符号引用 符号引用已一组符号来描述所引用的目标,符号引用可以是任何形式的字面量,只要能无歧义的定位到目标即可,符号引用和JVM的布局无关。 在编译的时候每一个Java类都会编译...

    1、什么是符号引用和直接引用

    • 符号引用

      符号引用已一组符号来描述所引用的目标,符号引用可以是任何形式的字面量,只要能无歧义的定位到目标即可,符号引用和JVM的布局无关。
      在编译的时候每一个Java类都会编译成一个class文件,但在编译的时候JVM并不知道所引用类的地址,所以就用符号代替,而在解析阶段就是为了把这个符号转换成真正的引用地址的一个阶段

    • 直接引用

      直接引用是和虚拟机的布局有关的,不同虚拟机对于相同符号引用编译出来的直接引用一般是不一样的。如果有了直接引用,那么直接引用的该目标一定加载到了内存当中。

    展开全文
  • 在JVM中,类从被加载到...一、符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标, 符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。 例如,在Class文件中它以 CONSTA

    原文章链接:https://dazi.kukuw.com/art_show_2044154.html

    在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:
    加载、验证、准备、解析、初始化、使用和卸载7个阶段。
    而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。
    一、符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,
    符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。
    例如,在Class文件中它以
    CONSTANT_Class_info、CONSTANT_Fieldref_info、
    CONSTANT_Methodref_info等类型的常量出现。
    符号引用与虚拟机的内存布局无关,引用的目标并不一定加载到内存中。
    在Java中,一个java类将会编译成一个class文件。
    在编译时,java类并不知道所引用的类的实际地址,因此只能使用符号引用来代替。
    比如org.simple.People类引用了org.simple.Language类,
    在编译时People类并不知道Language类的实际内存地址,
    因此只能使用符号org.simple.Language
    (假设是这个,当然实际中是由类似于CONSTANT_Class_info的常量来表示的)
    来表示Language类的地址。各种虚拟机实现的内存布局可能有所不同,
    但是它们能接受的符号引用都是一致的,
    因为符号引用的字面量形式明确定义在Java虚拟机规范的Class文件格式中。
    二、直接引用:直接引用可以是
    1、直接指向目标的指针(比如,指向“类型”【Class对象】、
    类变量、类方法的直接引用可能是指向方法区的指针)
    2、相对偏移量(比如,指向实例变量、实例方法的直接引用都是偏移量)
    3、一个能间接定位到目标的句柄
    直接引用是和虚拟机的布局相关的,同一个符号引用在不同的虚拟机实例上翻译出来的直接引用一般不会相同。
    如果有了直接引用,那引用的目标必定已经被加载入内存中了。

    展开全文
  • 符号引用与直接引用

    2019-07-24 12:07:00
    符号引用:在编译时,java类并不知道所引用的类的实际地址,因此只能使用符号引用来代替。比如org.simple.People类引用了org.simple.Language类,在编译时People类并不知道Language类的实际内存地址,因此只能使用...
  • JVM的符号引用和直接引用是什么 符号引用就是一个类中(当然不仅是类,还包括类的其他部分,比如方法,字段等),引入了其他的类, 可是JVM并不知道引入的其他类在哪里,所以就用唯一符号来代替,等到类加载器去解析...
  • 走进java_符号引用与直接引用

    万次阅读 多人点赞 2017-05-28 14:55:27
    Java类从加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括,加载 , 验证 , 准备 , 解析 , 初始化 , 卸载 ,总共七个阶段。 其中验证 , 准备 , ...符号引用可以是任何形式的字面量,
  • 符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可,使用符号引用时,被引用的目标不一定已经加载到内存中。 直接引用可以是直接指向目标的指针,相对偏移...
  • JAVA的符号引用和直接引用

    千次阅读 2018-08-14 22:12:49
    符号引用即用用字符串符号的形式来表示引用,其实被引用的类、方法或者变量还没有被加载到内存中。而直接引用则是有具体引用地址的指针,被引用的类、方法或者变量已经被加载到内存中。以变量举个例子: 符号引用...
  • 直接引用和虚拟机的布局是相关的,不同的虚拟机对于相同的符号引用所翻译出来的直接引用一般是不同的。如果有了直接引用,那么直接引用的目标一定被加载到了内存中。 直接引用可以是: 直接指向目标的指针。(个人...
  • 而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。 在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址,所以就用符号引用来代替,而在解析阶段...
  • JVM的直接引用和符号引用

    万次阅读 2018-11-06 21:14:33
    JVM在装载class文件的时候,会有一步是将符号引用解析为直接引用的过程。 那么这里的直接引用到底是什么呢? 对于指向“类型”【Class对象】、类变量、类方法的直接引用可能是指向方法区的本地指针。 指向实例...
  • 1.符号引用(Symbolic References):  符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_...
  • JVM - 直接引用和符号引用

    千次阅读 2018-08-09 10:24:37
    而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。 1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标...
  • 1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_Fieldref...
  • Java的符号引用和直接引用

    千次阅读 2017-06-09 17:30:12
    类加载过程的解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程(参考深入理解Java虚拟机第七章),那么,什么是符号引用和直接引用呢?符号引用(Symbolic References)符号引用以一组符号来描述所引用的...
  • JVM 符号引用与直接引用 Java类从加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括,加载,验证,准备,解析,初始化,卸载,总共七个阶段。其中验证,准备,解析统称为连接...
  • JVM的符号引用和直接引用是什么

    千次阅读 2019-07-08 22:58:49
    符号引用就是一个类中(当然不仅是类,还包括类的其他部分,比如方法,字段等),引入了其他的类,可是JVM并不知道引入的其他类在哪里,所以就用唯一符号来代替,等到类加载器去解析的时候,就把符号引用找到那个...
  • 类加载的过程(三步) 类加载就是程序中要使用某个类,这个类还没有加载进内存中,那么就会通过三步来...解析:再将类的二进制数据中的符号引用替换为直接引用。 初始化(第三步) 直接引用和符号引用 他人的详细讲解
  • 在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用。 1.符号引用(Symbolic References):  符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要...
  • 而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。 1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标...
  • 符号引用和直接引用,解析和分派

    千次阅读 2018-04-27 11:53:25
    知乎-RednaxelaFX——JVM里的符号引用如何存储? 【深入理解JVM】:解析与分派 1. 符号引用 2. 直接引用 3. 解析 4. 分派 4.1 静态分派 4.2 动态分派 5. 总结 5.1 符号引用 5.2 直接引用 5.3 解析 5.4 分派...
  • 符号引用和直接引用

    千次阅读 2013-06-22 21:43:00
    总结:JVM对于直接引用和符号引用的处理是有区别的,可以看到符号引用时,JVM将使用StringBuilder来完成字符串的 添加,而直接引用时则直接使用String来完成;直接引用永远比符号引用效率更快,但实际应用开发中不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,856
精华内容 6,342
关键字:

符号引用