精华内容
下载资源
问答
  • 在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、一个能间接定位到目标的句柄
    直接引用是和虚拟机的布局相关的,同一个符号引用在不同的虚拟机实例上翻译出来的直接引用一般不会相同。
    如果有了直接引用,那引用的目标必定已经被加载入内存中了。

    展开全文
  • 最近在学《深入理解Java虚拟机》,在“类文件结构”这章的常量池时,讲到常量池主要是存储字面量和符号引用,其中符号引用主要包括三种常量: - 类和接口的全限定名 - 字段的名称和描述符 - 方法的名称和描述符 ...
  • Java符号引用和直接引用

    千次阅读 2017-06-09 17:30:12
    类加载过程的解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程(参考深入理解Java虚拟机第七章),那么,什么是符号引用和直接引用呢?符号引用(Symbolic References)符号引用以一组符号来描述所引用的...

    类加载过程的解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程(参考深入理解Java虚拟机第七章),那么,什么是符号引用和直接引用呢?

    符号引用(Symbolic References)

    符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义的定位到目标即可。符号引用与虚拟机实现的内存布局无关,引用的目标并不一定已经加载到内存中。各种虚拟机实现的内存布局可以各不相同,但是它们能接受的符号引用必须都是一致的,因为符号引用的字面量形式明确定义在Java虚拟机规范的Class文件中。

    直接引用(Direct References)

    直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄。直接引用是和虚拟机实现的内存布局相关的,同一个符号引用在不同虚拟机实例上翻译出来的直接引用一般不会相同。如果有了直接引用,那引用的目标必定已经在内存中存在。

    展开全文
  • 在编译时,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类的实际内存地址,及直接引用地址。

    展开全文
  • Java符号引用

    2018-10-06 14:08:57
     在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。  比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用...

    转自:https://www.cnblogs.com/fpcbk/p/9013761.html

      在java中,一个java类将会编译成一个class文件。

      在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。

      比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。

       而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。

    也就是说,符号引用是在编译时被用来当类的内存地址的(也就是说符号引用就是内存地址)然后会在类装载进JVM时,在类装载第2步的链接中,链接的第三步解析中,就会将类的真正内存地址换掉符号引用

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

    万次阅读 多人点赞 2017-05-28 14:55:27
    Java类从加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括,加载 , 验证 , 准备 , 解析 , 初始化 , 卸载 ,总共七个阶段。 其中验证 , 准备 , ...符号引用可以是任何形式的字面量,
  • JAVA符号引用和直接引用

    千次阅读 2018-08-14 22:12:49
    符号引用即用用字符串符号的形式来表示引用,其实被引用的类、方法或者变量还没有被加载到内存中。而直接引用则是有具体引用地址的指针,被引用的类、方法或者变量已经被加载到内存中。以变量举个例子: 符号引用...
  • JAVA中的符号引用

    千次阅读 2017-07-28 11:02:49
    [1]符号引用(Symbolic References):  符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_...
  • Java的字面量和符号引用

    千次阅读 2018-07-28 23:07:29
    最近看jvm时遇到了“字面量”和“符号引用”这两个概念,它们被存放在运行时常量池,看了一些博客以后对这两个概念有了初步认识。 字面量可以理解为实际值,int a = 8中的8和String a = "hello"中的hello...
  •    Java类从加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括,加载 ,验证 , 准备 , 解析 , 初始化 , 卸载 ,总共七个阶段。其中验证 ,准备 ...:符号引用以一组符号来描...
  • 在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool...
  • JAVA class文件中的符号引用

    万次阅读 2014-01-02 10:36:00
    在编译的时候,class文件中是通过叫做"符号引用"的方式来实现的。 如下面的例子 public interface Intf {   public static String str = "abcde";  public static int ival = new Random().nex
  • java字面量和符号引用

    千次阅读 2018-11-06 23:55:17
    1.字面量 ...符号引用就是某个变量,在编译的时候,无法确定其内存地址。 String str = "Hello World!" System.err.println(str); 第二行代码中的str在编译的时候就会编译为符号引用。...
  • 加载->链接(验证+准备+解析)->初始化(使用...最后在java堆中生成一个代表这个类的Class对象,作为方法区这些数据的访问入口。总的来说就是查找并加载类的二进制数据。 (2)链接:  验证:确保被加载类的正确性;
  • 谈谈java字符串常量池和符号引用

    千次阅读 2018-06-25 10:32:42
    JVM的类加载机制:加载 准备 验证 解析 初始化 使用 卸载,其中解析 即 将符号引用解析为直接引用,因为对一些类和类的字段,方法的引用,在编译时不知道其具体的位置,所以会使用符号引用,在加载时再具体的解析...
  • Java字面量(Java直接量)和符号引用

    万次阅读 2015-03-09 10:50:39
    1、Java字面量(Java直接量) int i = 1;把整数1赋值给int型变量i,整数1就是Java字面量, 同样,String s = "abc";中的abc也是字面量。 数据类型 直接量描述 举例 int ...
  • 符号引用

    千次阅读 2019-06-17 14:20:11
    在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool...
  • 我自己在测试Project中试了,是没有问题的。当把同样的内容放到了我现在工作的项目里,Java类就引用不了Kotlin类,这是为什么呢?是不是需要在哪里设置?
  • JVM符号引用与直接引用

    千次阅读 2020-03-27 20:11:38
    符号引用符号引用是以一组符号来描述所引用的目标,符号...因为符号引用中的字面量形式由java虚拟机规范中的class文件格式确定。 直接引用: 直接引用可以直接指向目标的指针、相对偏移量或者一个能间接访问到...
  • JVM的符号引用和直接引用

    千次阅读 2017-04-25 11:30:41
    在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用。1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用...
  • 符号引用Symbolic References 直接引用在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。而解析阶段即是虚拟机将常量池内的...
  • JVM - 符号引用转化为直接引用

    千次阅读 2020-02-04 00:02:44
    在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址,所以就用符号引用来代替,而在解析阶段就是为了把这个符号引用转化成真正的地址的阶段。 1.符号引用符号...
  • JVM中符号引用与直接引用

    千次阅读 2015-10-08 15:47:08
    符号引用(Symbolic Reference):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义的定位到目标就行, 符号引用与虚拟机的内存布局没有关系,引用的目标不一定需要已经加载...
  • 符号引用和直接引用

    千次阅读 2013-06-22 21:43:00
    总结:JVM对于直接引用和符号引用的处理是有区别的,可以看到符号引用时,JVM将使用StringBuilder来完成字符串的 添加,而直接引用时则直接使用String来完成;直接引用永远比符号引用效率更快,但实际应用开发中不...
  • 在JVM中,类从被加载到虚拟机内存中...1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONS
  • Java Matcher类 replaceAll 捕获组使用及使用符号$引用捕获组详解
  • 浅析 JVM 中的符号引用与直接引用

    千次阅读 多人点赞 2018-09-11 18:10:30
    在 JVM 的学习过程中,一直会遇到符号引用和直接引用这两个概念。最近我也查阅了一些资料,有了一些初步的认识,记录在此与大家分享。文中的内容,主要参考自 JVM里的符号引用如何存储? 与 自己动手写Java虚拟机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,354
精华内容 72,941
关键字:

java符号引用

java 订阅