![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
JVM 性能调优
JAVA6b
极尽所能,力求极致,不负此生!
展开
-
《架构师修炼记》【JVM】之学习总图
前 言 先搭个架子,以后再慢慢填补。 JVM之学习总图原创 2020-09-04 18:43:50 · 90 阅读 · 0 评论 -
JVM学习总结(五):JVM执行子系统——类文件结构及字节码指令
前言正文一、JVM 的无关性与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序的“一次编写,到处运行”。各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石,也是语言无关性的基础。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Java 虚拟机指令集和符号表以及若干其他辅助信息。原创 2020-08-09 12:35:23 · 217 阅读 · 0 评论 -
JVM学习总结(四):垃圾回收机制及算法
前言正文一、基础知识1、什么是GCJava 与 C++等语言最大的技术区别:自动化的垃圾回收机制(GC)JVM中各内存区域的GC:栈(程序计数器+虚拟机栈+本地方法栈)栈中的生命周期是跟随线程,内存也随着线程的结束而自动回收,所以一般不需要关注堆内存堆中的对象是垃圾回收的重点方法区/元空间这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点2、分代回收理论当前商业虚拟机的垃圾回收器,大多遵循“分代收集”的理论来进行设计,这个理论大体上是这么描述的:1、 绝大原创 2020-08-09 11:08:08 · 271 阅读 · 0 评论 -
JVM学习总结(三):深入探究JVM中的对象及引用
前言正文一、对象的创建过程1、类加载类加载就是把 class 加载到 JVM 的运行时数据区的过程(类加载后续会详细讲)。2、检查加载首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用(符号引用 :符号引用以一组符号来描述所引用的目标),并且检查类是否已经被加载、解析和初始化过。3、分配内存接下来虚拟机将为新生对象分配内存。为对象分配空间的任务等同于把一块确定大小的内存从 Java 堆中划分出来。3.1 内存分配方式指针碰撞如果 Java 堆中内存是绝对规整的,所有用过的原创 2020-08-08 17:23:26 · 464 阅读 · 0 评论 -
JVM学习总结(二):深入探究Java内存结构及String详解(彻底搞懂intern的用法)
前言上一篇主要从整体架构上概括了Java的内存结构,只是在宏观上有一个大体的认识,不够深入,接下来这篇文章,将进一步深入探究Java的内存结构模型,作为上一篇的补充。正文接下来,结合一段代码来深入探究Java 的内存结构,/** * @author King老师 * VM参数 * -Xms30m * -Xmx30m * -XX:MaxMetaspaceSize=30m * -XX:+UseConcMarkSweepGC * -XX:-UseCompressedOops *原创 2020-08-07 16:21:09 · 479 阅读 · 1 评论 -
JVM学习总结(八):Java 语法糖及实现——泛型和Stream的实现原理
前言正文一、Java 中的泛型——Java 语言的一颗语法糖1、泛型是什么?泛型,即“参数化类型”,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。引入一个类型变量 T(其他大写字母都可以,不过常用的就是 T,E,K,V 等等),并且用<>括起来,并放在类名的后面。泛型类是允许有多个类型变量的。按照约定,类型参数名称命名为单个大写字母,以便可以在使用普通类或接口名称时能够容易地区分类型参数。以下是常用的类型参数名称列表:E - 元素,主要由 Java 集合(Collec原创 2020-08-07 02:31:46 · 391 阅读 · 0 评论 -
JVM学习总结(六):深入探究JVM类加载机制及JIT简介
前言正文一、JVM 即时编译器 JIT1、解释执行与 JITJava 程序在运行的时候,主要就是执行字节码指令,一般这些指令会按照顺序解释执行,这种就是解释执行,解释执行的方式是非常低效的,它需要把字节码先翻译成机器码,才能往下执行。另外,字节码是 Java 编译器做的一次初级优化,许多代码可以满足语法分析,其实还有很大的优化空间。所以,为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化。完成这个任务的编译器,就称为即时编译器(Just原创 2020-08-03 15:15:00 · 794 阅读 · 0 评论 -
JVM学习总结(一):Java内存结构
前言【前提:本系列文章未明确指明默认都是基于Oracle HotSpot虚拟机以及JDK1.8】最近在学习JVM,发现JVM的体系非常庞大,内容错综复杂,往往记住下篇,忘了上篇,所以想通过一系列的文章来记录自己的学习心得,做个学习复盘,一是为了梳理知识点,归纳总结,二是为了分享交流,如有错误之处还望指出。好了废话不多说,直接上正菜:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算原创 2020-07-28 02:53:46 · 279 阅读 · 0 评论