• 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类型 ……)返回值类型

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

  • 相关阅读:
    41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
    【编程规范整理】
    CI/CD----jenkins+gitlab+django(内网)
    tomcat访问日志
    Django + celery +redis使用
    CI/CD----jenkins安装配置
    linux 批量删除进程
    django数据查询之聚合查询和分组查询
    django middleware介绍
    git初始化命令行指引
  • 原文地址:https://www.cnblogs.com/jthr/p/15484424.html
Copyright © 2020-2023  润新知