logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

INDY工具的使用(读深入理解java虚拟机验证)

什么是INDY由于invokedynamic指令所面对的使用者并非java语言,而是其他java虚拟机支持的动态语言,因此仅依靠java语言的编译器javac没有办法生成带有invokedynamic指令的字节码,所以要使用java语言来演示invokedynamic指令只能用一些变通的办法。John Rose编写了一个把程序的字节码转换未使用invokedynamic的简单工具INDY来完成这件

mac idea2019.2 虚拟机内存配置

之前idea的版本内存配置文件都是在如下:目录/Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions最近升级了一下2019.2版本发现这个修改后始终不生效。版本如下:最后发现在这个目录的文件修改了,才能生效。/Users/XXXX/Library/Preferences/IntelliJIdea2...

HotSpot虚拟机的分层编译(Tiered Compilation)

一、基本概念名词用于 HotSpot 虚拟机中。提前编译(Ahead Of Time,AOT)即时编译(Just In TIme,JIT)解释器(Interpreter)编译器(Compiler)客户端编译器(Client Compiler,C1)服务端编译器(Server Compiler,C2,也叫Opto编译器)Graal编译器(JDK 10 出现用于替代 C2)混合模式(Mixed Mod

如何将Java代码对应到字节码,最后到汇编?(HSDIS、JITWatch)

先看下效果左边是java代码,中间是字节码,右边是汇编。并且一一对应。一、使用的工具说明操作系统 MacOSJava 版本java version “1.8.0_231”IDE 使用 IntelliJ IDEA 2020.2 (使用其他完全可以)apache-maven-3.5.4反汇编 HSDIS查看工具 JITWatch二、准备工具重点准备后两个。2.1、HSDIS2.1.1、介绍HSDIS是

#java
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码

最近在读《深入理解Java虚拟机》第三版,周志明著,第十章时,作者使用 Eclipse 编译了 Javac 的源码,但是我想用IntelliJ IDEA 编译一下平时使用的JDK 8 的 Javac 源码,测试一波,中途踩到了一些坑,一直没有办法编译,最后终于编译成功了,记录一下。准备IntelliJ IDEAJDK 8OpenJDK 源码第一步、获取源码官方下载。可以下载zip包,或者gz 都可

#intellij idea
双重检查锁定(Double-Checked Locking)的问题和解决方案

读《Java并发编程的艺术》方腾飞、魏鹏、程晓明著。笔记一、什么是双重检查锁定为了提高性能,会延迟初始化某些类,在第一次使用的时候做类的初始化。为了保证多线程下的线程安全,一般会做安全同步。简单的方式就是如下:public class Singleton {private static Singleton instance;public synchronized Singleton getInst

到底了