石家庄博为峰IT教育

试听课 + 活动课
填写信息优先获取试听课

位置:学校首页 > 招生信息> 石家庄Java培训培训机构哪家不错

石家庄Java培训培训机构哪家不错

立即报名 在线咨询

课程介绍

我们知道一个Java类要想被Java虚拟机加载,必须先生成相应的二进制文件,即class文件,而一个方法或一段代码在运行期要么被解释执行,要么被编译器编译成汇编码,编译执行,那如何去查看这些转换后的代码呢?

命令 javap

javap -v/-c F.class

javap

可以用命令拓展在ide工具里

eclipse Run/External Tools

然后点击要查看的文件,Run/External Tools/javap

解释下配置项Name: 命名,如javap

Location: jdk中javap命令的路径

Working Directory:

工作目录,可以在Variables里选择,

${project_loc} 表示当前所选择的resource所在的project或正构建的project或所选择的的路径

如果当前project已经加入到eclipse的workspace中,也可用 ${workspace_loc}/${project_name}

Arguments:

当前执行文件相对于Working Directory的路径

-classpath target/classes: classpath路径

-v: Javap命令的<options>

${java_type_name}:即当前Java文件对于的class文件,Variables里选择

也可以在idea File/Settings/Tools/External Tools中配置:

配置完后,右键需要查看的文件,选择External Tools/javap -v

查看汇编码

首先要下载hsdis-amd64.dll文件,并将文件放置在%JAVA_HOME%/jre/bin的server和client目录下

放置完后,可以 命令测试 java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -version

如果输出PrintAssembly is enabled,说明hsdis-amd64安装成功

注:有些jdk版本没有client目录

然后配置VM

-server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:CompileCommand=compileonly,*Test.add

解释下配置项:

-server -Xcomp

虚拟机一般有两种模式运行执行代码,即解释模式和编译模式,默认采用解释器与其中一个编译器直接配合的方式工作:混合模式,可以看到Java -version 输出内容有mixed mode

使用参数“-Xint”强制虚拟机运行于“解释模式”(Interpreted Mode)

使用参数“-Xcomp”强制虚拟机运行于“编译模式”(CompiledMode)

而HotSpot虚拟机中内置了两个即时编译器

C1 ClientCompiler

C2 Server Compiler

从Java -version 输出 Java HotSpot(TM) 64-Bit Server VM可以得知,运行于Server模式

-XX:+UnlockDiagnosticVMOptions

打开虚拟机的诊断模式,一些参数(如PrintAssembly)在诊断模式下才能使用

-XX:+PrintAssembly

打印即时编译后的二进制信息,即汇编码

-XX:CompileCommand=compileonly,*Test.add

编译时接受的指令,这里compileonly,*Test.add 是指编译add方法

全能查看,即可查看代码,同时也可以对照字节码和汇编码

在GitHub中下载jitwatch,点击其目录下的launchUI,打开图形窗口,

config中配置Java文件所在的项目路径及classpath路径

idea VM 参数

-server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:CompileCommand=compileonly,*Test.add -XX:+LogCompilation -XX:LogFile=jit1.log

运行后会在classpath下生成jit1.log日志文件,点击jitwatch窗口的Open Log导入日志文件,再Staart运行,可以查看执行的Source,Bytecode,Assembiy

温馨提示:想要了解更多课程安排、开班时间、优惠活动、学费地址等欢迎随时来电咨询并领取试听资格!

温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
版权所有:搜学搜课(www.soxsok.com) 技术支持:搜学搜课网