字⾯量,符号引⽤与直接引⽤
转载⾃blog.csdn/BraveLoser/article/details/82500474
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. 直接引⽤
直接引⽤可以是:
直接指向⽬标的指针.(个⼈理解为: 指向⽅法区中类对象, 类变量和类⽅法的指针)
相对偏移量. (指向实例的变量, ⽅法的指针)
⼀个间接定位到对象的句柄.
我觉得直接引⽤说⽩了, 就是程序运⾏时可以定位到引⽤的东西(类, 对象, 变量或者⽅法等)的地址.————————————————
版权声明:本⽂为CSDN博主「Glenn⽢露」的原创⽂章,遵循CC 4.0 BY-SA版权协议,转载请附上原⽂出处链接及本声明。
原⽂链接:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。