java
文章平均质量分 88
张诺然
一只有梦想的咸鱼
展开
-
深入理解JVM之编译优化
前端编译与优化前端编译器把*.java文件转变成*.class文件的过程JDK的Javac、EclipseJDT中的增量式编译器(ECJ)Java虚拟机的即时编译器(常称JIT编译器,JustInTimeCompiler)运行期把字节码转变成本地机器码的过程HotSpot虚拟机的C1、C2编译器,Graal编译器静态的提前编译器(常称AOT编译器,AheadOfTimeCompiler)直接把程序编译成与目标机器指令集相关的二进制代码的过程JDK的Jaotc、GNUComp原创 2021-04-29 15:51:30 · 109 阅读 · 0 评论 -
深入理解JVM之高效并发
Java内存模型与线程Java内存模型Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节.此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的,不会被共享主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(Main Memory)中每条线程还有自己的工作内存线程的工作内存中保存了被该线程使原创 2021-04-29 15:49:32 · 156 阅读 · 0 评论 -
【学习笔记】深入理解java虚拟机之类的探索
类文件结构Class类文件的结构Class文件是一组以8个字节为基础单位的二进制流,数据按照严格顺序紧凑排列在文件中,中间没有任何分隔符。当遇到需要占用8个字节以上空间的数据时,会按照高位在前的方式分割成若干个8个字节进行存储。这种顺序称为“Big-Endian”,具体顺序是指按高位字节在地址最低位,最低字节在地址最高位来存储数据。Class文件格式采用一种伪结构来存储数据,这种伪结构中只有两种数据类型,“无符号数"和"表”。无符号数属于基本类型,以u1、u2、u4、u8分别表示1个,2个,4原创 2021-04-26 16:51:10 · 297 阅读 · 0 评论 -
【学习笔记】深入理解java虚拟机之探索虚拟机内部和垃圾回收
深入理解java虚拟机2021-03-12概述Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想;它提供了一种相对安全的内存管理和访问机制,避免了绝大部分内存泄漏和指针越界问题;它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增长而获得更高的性能;它有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助用户实现各种各样的功能...原创 2021-03-29 16:17:46 · 165 阅读 · 0 评论