小阳人终于身体稍微好了一些,所以今天恢复继续
javac
fileName -[d 路径] -[encoding 编码方式]
javac顾名思义,java compile(java 编译)是将我们的代码编译为字节码。这里的编译结果和c语言,go语言的编译结果不同。javac编译的结果只能运行在jvm中。
javap
javap
javap指令与javac相反,该指令用于将javac中编译成的class文件反编译为我们可以读的文件。在日常中,
1.如我们在多线程时发生指令重排,则可以使用该命令进行反编译来查看编译后的代码。
2.查看代码的运行过程以及查看常量池等信息。
用法: javap <options> <classes>
其中, 可能的选项包括:
--help -help -h -? 输出此帮助消息
-version 版本信息
-v -verbose 输出附加信息(查看代码中常量等信息)
-l 输出行号和本地变量表
-public 仅显示公共类和成员
-protected 显示受保护的/公共类和成员
-package 显示程序包/受保护的/公共类
和成员 (默认)
-p -private 显示所有类和成员
-c 对代码进行反汇编
-s 输出内部类型签名
-sysinfo 显示正在处理的类的
系统信息(路径、大小、日期、SHA-256 散列)
-constants 显示最终常量
--module <模块>, -m <模块> 指定包含要反汇编的类的模块
-J<vm-option> 指定 VM 选项
--module-path <路径> 指定查找应用程序模块的位置
--system <jdk> 指定查找系统模块的位置
--class-path <路径> 指定查找用户类文件的位置
-classpath <路径> 指定查找用户类文件的位置
-cp <路径> 指定查找用户类文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
--multi-release <version> 指定要在多发行版 JAR 文件中使用的版本
GNU 样式的选项可使用 = (而非空白) 来分隔选项名称
及其值。