基础储备----字面量, 符号引用与直接引用


1. 前言

学习JVM的时候, 总碰到字面量, 符号引用与直接引用这几个词, 理解的迷迷糊糊的. 这里总结一下.

2. 字面量

百度百科解释: 在计算机科学中, 字面量(literal)是用于表达源代码中一个固定值的表示法(notation). 几乎所有计算机编程语言都具有对基本值的字面量表示, 诸如: 整数, 浮点数以及字符串; 而有很多也对布尔类型和字符类型的值也支持字面量表示; 还有一些甚至对枚举类型的元素以及像数组, 记录和对象等复合类型的值也支持字面量表示法.
很抽象, 举个例子就明白了.

int i = 1;把整数1赋值给int型变量i,整数1就是Java字面量,
String s = "abc";中的abc也是字面量。

3. 符号引用

符号引用以一组符号来描述所引用的目标, 符号可以是任何形式的字面量, 只要使用时能够无歧义的定位到目标即可. 例如, 在Java中, 一个Java类将会编译成一个class文件. 在编译时, Java类并不知道所引用的类的实际地址, 因此只能使用符号引用来代替. 比如org.simple.People类引用了org.simple.Language类, 在编译时People类并不知道Language类的实际内存地址, 因此只能使用符号org.simple.Language来表示Language类的地址.

4. 直接引用

直接引用可以是:

  1. 直接指向目标的指针.(个人理解为: 指向方法区中类对象, 类变量和类方法的指针)
  2. 相对偏移量. (指向实例的变量, 方法的指针)
  3. 一个间接定位到对象的句柄.

我觉得直接引用说白了, 就是程序运行时可以定位到引用的东西(类, 对象, 变量或者方法等)的地址.

5. 参考链接

https://www.cnblogs.com/shinubi/articles/6116993.html
https://blog.csdn.net/u010850285/article/details/44152157
https://blog.csdn.net/qq_34402394/article/details/72793119

  • 29
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值