zoukankan      html  css  js  c++  java
  • JAVA虚拟机03-常量池项中的字面量和符号引用

    转https://baijiahao.baidu.com/s?id=1682261792528500739&wfr=spider&for=pc

    符号引用

      符号引用以一组符号来描述所引用的目标, 符号可以是任何形式的字面量, 只要使用时能够无歧义的定位到目标即可。

      例如, 在Java中, 一个Java类将会编译成一个class文件。在编译时, Java类并不知道所引用的类的实际地址, 因此只能使用符号引用来代替。 比如org.simple.People类引用了org.simple.Language类, 在编译时People类并不知道Language类的实际内存地址, 因此只能使用符号org.simple.Language来表示Language类的地址。

    类的全限定名

      Object类,在源件中的全限定名是java.lang.Object 。class文件中的全限定名是将点号替换成“/” 。 也就是java/lang/Object 。源件中个类的名字, 在class件中是全限定名表述的。

    描述符

      各类型的描述符对于字段的数据类型,其描述符主要有以下种基本数据类型(byte、char、double、float、int、long、short、boolean),除 long 和boolean,其他基本数据类型的描述符对应单词的写字表示。long J 表示,boolean Z 表示。void:描述符是 V。对象类型:描述符字符L 加上对象的全限定名表示,如 String 类型的描述符为Ljava/lang/String 。数组类型:每增加个维度则在对应的字段描述符前增加个 [ ,如维数组 int[] 的描述符为[I ,维数组 String[][] 的描述符为 [[Ljava/lang/String 。

    字段描述符

      字段的描述符就是字段的类型所对应的字符或字符串。

    如:int i 中, 字段i的描述符就是 I

    Object o中, 字段o的描述符就是 Ljava/lang/Object;

    double[][] d中, 字段d的描述符就是 [[D

    方法描述符

      法的描述符较复杂, 包括所有参数的类型列表和法返回值。 它的格式是这样的:(参数1类型 参数2类型 参数3类型 ……)返回值类型

      不管是参数的类型还是返回值类型, 都是使对应字符和对应字符串来表示的, 并且参数列表使括号括起来, 并且各个参数类型之间没有空格, 参数列表和返回值类型之间也没有空格。

  • 相关阅读:
    Alfred上可提高工作效率的Workflow推荐
    局部性原理——各类优化的基石
    持续学习——程序猿的军备竞赛
    http://regex.alf.nu/ 非标准答案
    13总结
    Ubuntu下python安装mysqldb(驱动)
    北大ACM试题分类+部分解题报告链接
    poj 3253 Fence Repair(优先队列+huffman树)
    Centos/Fedora下安装Twisted,failed with error code 1 in /tmp/pip-build-H1bj8E/twisted/解决方法
    关于command 'gcc' failed with exit status 1 解决方法
  • 原文地址:https://www.cnblogs.com/jthr/p/15484424.html
Copyright © 2011-2022 走看看