美文网首页
码中理解JVM

码中理解JVM

作者: 傻猪侠 | 来源:发表于2017-03-14 09:47 被阅读5次

直接阅读JVM的字节编码,绝对是瞌睡的节奏,但是在码过程中理解一下,倒是会记忆深刻

反射时,为什么获取不到方法的参数名?

1. 在JVM规范中,方法参数名不参与方法签名;这也就是为什么仅仅参数名不同,方法是不能重载的

2. 方法参数名虽然不参与方法签名,但编译时,该信息还是会默认保存到字节码文件中,因此通过解析节码文件还是能取到的,比如:通过javassit或者spring的LocalVariableTableParameterNameDiscoverer类获取,在低版本的jdk中,通过反射是获取不到的。

3. jdk1.8版本后,反射也能获取到方法参数名,但需要在jvm启动时,使用-parameters参数开启该功能

4. 由于参数名不参与方法签名,所以该信息在运行时属于冗余的信息。因此在对保密性代码进行混淆时,方法参数名一般会被替换成毫无意义的字符,如果编码中对它有依赖是会有风险的。

为什么范型获取不到具体的类型?

待续......

相关文章

  • 码中理解JVM

    直接阅读JVM的字节编码,绝对是瞌睡的节奏,但是在码过程中理解一下,倒是会记忆深刻 反射时,为什么获取不到方法的参...

  • 什么是字节码?采用字节码的好处是什么?

    什么是字节码?采用字节码的好处是什么? 在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .clas...

  • JVM

    什么是字节码?采用字节码的好处是什么? 在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .clas...

  • JAVA基础-什么是字节码?采用字节码的好处是什么?

    什么是字节码?采用字节码的好处是什么? 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .cla...

  • 2020-12-03-Java-复习-55(面试题摘要1)

    1.关于字节码 在Java 中,JVM可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定...

  • jvm专题二

    jvm架构理解image.png jvm执行流程Java编译成字节码、动态编译和解释为机器码的过程分析:image...

  • Java中高级核心知识全面解析——类文件结构(概述、Class文

    一、概述 在 Java 中,JVM 可以理解的代码就叫做 字节码 (即扩展名为 .class 的文件),它不面向任...

  • JVM

    java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过J...

  • 【JVM篇】【JVM的组成】

    【JAVA】【JVM篇】【JVM的组成】 来自二线的码农笔记,用自己的理解总结知识点,互相学习 1. JVM概念 ...

  • 类文件结构

    类文件结构 一 概述 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它...

网友评论

      本文标题:码中理解JVM

      本文链接:https://www.haomeiwen.com/subject/ocycnttx.html