如何查看java的汇编指令
通过javap 命令,可以将字节码文件反编译。如通过下面的命令:
javac XXX.java
javap -c XXX.class
而有时候想看某些JDK底层实现,只是得到一些反编译的代码,那么我想要查看Java的汇编指令,查看Java代码最真实的运行细节,要该怎么做呢?
Java本身提供这个支持,但需要引入而外的包
链接: https://pan.baidu.com/s/1-evEb79T_d0r9lZBU5exeA 密码: vucm
Mac下载:(hsdis-amd64.dylib)
:
下载后,将其放到bin目录下
windows系统(hsdis-amd64.dll): 解压hsdis-1.1.1-win32-amd64.zip
解压后存放到jre目录的server路径下
输出汇编指令:
1、在IDEA配置启动class的VM options加入打印汇编指令:
-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
比如在代码里使用volatile关键字:
private static volatile User user;static {if(user==null){user = new User();}}
volatile变量修饰的共享变量,在进行写操作的时候会多出一个lock前缀的汇编指令,
会触发总线锁或者缓存锁(cpu有高速缓存,引起缓存一致性问题),通过缓存一致性协议来解决可见性问题
如何查看java的汇编指令相关推荐
- 查看Java的汇编指令
通过javap 命令,可以将字节码文件反编译.如通过下面的命令: javap -c Xxxx.class 而有时候想看某些JDK底层实现,发现反编译得到的代码并没有什么帮助,因此本文介绍如何查看Jav ...
- idea查看java代码汇编指令
把下面文件放到JRE_HOME/bin/server hsdis-amd64.dll hsdis-amd64.lib 指定java的jvm参数 -server -Xcomp -XX:+UnlockDi ...
- 通过查看Windbg中汇编指令及内存中的值去定位软件崩溃问题
目录 1.在Windbg中分析dump文件的一般步骤 1.1.查看异常的类型
- 关于win10系统如何调用debug查看CPU汇编指令和内存
下载安装DOSBox.网上提供下载地址:DOSBOX Debug是DOS(Disk Operating System,磁盘操作系统).windows提供的实模式(8086方式)程序的调试工具.使用它, ...
- java汇编指令查看工具jitwatch
当前环境:jdk1.8,win10,64位 打印Java汇编指令 使用hsdis工具打印汇编指令,可以自行编译或者下载已编译好的dll或so文件,并将文件拷贝至jdk安装目录下的bin/server或 ...
- 【JVM】通过javap命令分析Java汇编指令
文章目录 javap命令简述 javap测试及内容详解 例子1 例子2 总结 转载说明 javap命令简述 javap是jdk自带的反解析工具.它的作用就是根据class字节码文件,反解析出当前类对应 ...
- java 汇编_大话+图说:Java 汇编指令——只为让你懂
原标题:大话+图说:Java 汇编指令--只为让你懂 前言 随着Android开发技术不断被推到新的高度,对于Android程序员来讲越来越需要具备一些对深入的基础性的技术的理解,比如说Java汇编指 ...
- 通过javap命令分析java汇编指令
一.javap命令简述 javap是jdk自带的反解析工具.它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令).本地变量表.异常表和代码行偏移量映射表.常量池等等信息. ...
- 实验1 查看CPU和内存、用机器指令和汇编指令编程
实验任务 一.使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码 汇编指令 b8 20 4e mov ax,4E20H 05 16 14 add ax,1 ...
最新文章
- 小巧的日志记录组件 - 开源研究系列文章
- javascript-模板方法模式-提示框归一化插件
- AAAI2019 | 腾讯AI Lab详解自然语言处理领域三大研究方向及入选论文
- @param注解的用法解析_SpringBoot 配置类解析
- 为什么程序员更喜欢用google搜索? 因为正经!
- linux 下的csp 模块,linux kernel 中MIGRATE_TYPES的理解
- linux 僵尸进程 fwrite,Linux之僵尸进程
- 假设有python程序文件_《Python程序设计》题库
- HDU 3861 The King’s Problem 强连通分量 最小路径覆盖
- 为ASP.NET MVC Client-side Resource Combine 添加中文支持
- Linq实战 之 Linq to Sql及Entity Framework操作详解
- 00003__位图简介
- 毕业设计总结篇之终结篇——基于android的创意展示平台(混合app)
- 操作系统 - startx/xinit
- before和after怎么区分_before和after区别
- 市审计局充分利用大数据助力扶贫和“十个全覆盖”审计工作
- 的确,Java存在缺陷。但是……
- [附源码]Python计算机毕业设计大众点评管理系统
- vue检测是不是360浏览器兼容模式_vue开发之不同浏览器的类型判断
- 356 次小生成树(求解最近公共祖先优化)
热门文章
- javascript使用workbox离线缓存网页
- Xshell6 中,电脑数字小键盘输入不了数字(按数字键输入字母)
- linux防火墙放开pptpd端口号,Linux下 iptables防火墙 放开相关端口 拒绝相关端口 及查看已放开端口...
- python pptp拨号_pptp拨号上网
- 0基础学python第一天:认识python,安装python,输出第一个程序
- python智慧树董付国_智慧树_师魂_大学课后答案
- 指针与二级指针的理解与应用
- 使用jedis连接redis-cluster模拟缓存击穿,穿透,雪崩场景
- #214-[模拟]QQ堂
- 大端与小端以及如何判断大小端