Java JVM(v13)
Java JVM 虚拟机
2.wa
https://review-notes.top 技术博客
展开
-
Java JVM(JDK13)-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 Java JVM(虚拟机)-自动内存管理Java JVM 运行时内存数据区域Java JVM 对象的创建与访问过程...原创 2020-01-04 00:13:15 · 1893 阅读 · 0 评论 -
2020 年 Java 面试题(中高级)
自我面试背书式的学习对技术的提升帮助很小。本篇内容不涉及答案,答案需要去相关专栏学习。把面试看作是费曼学习法中的回顾、授课环节。首先我们能讲给自己听,如果不满意再回炉学习总结,如此反复。专栏学习地址:CSDN-同步发布 Java 并发编程专栏 CSDN-同步发布 Java 虚拟机(JVM) 专栏 个人技术博客-同步发布 Java 并发编程专栏 个人技...原创 2020-01-19 16:29:36 · 2249 阅读 · 0 评论 -
Java JVM 虚拟机编译器性能增强优化技术
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言介绍 Oracle HotSpot 虚拟机技术的性能增强部分案例。优化技术手段非常之多,可参考官方列出 openjdk-优化技术概览 字符串压缩字符串压缩功能...原创 2020-01-19 16:06:25 · 1318 阅读 · 0 评论 -
Java JVM 从程序员的角度看对象初始化过程,变量加载顺序及内存分配
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言前面我们分析过 从虚拟机的角度看对象的创建与访问 。现在我们站在程序员角度,定义的一个个类及类里面的成员变量是怎么初始化的,什么时候初始化,以及初始化顺序。网...原创 2020-01-18 23:43:21 · 789 阅读 · 2 评论 -
Java 从虚拟机层面看程序代码是怎么运行起来的
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、Java 源代码怎么执行的许多 Java 虚拟机的执行引擎在执行 Java 代码的时候都是解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)混合运行...原创 2020-01-18 14:59:14 · 697 阅读 · 0 评论 -
Java JVM 动态方法调用指令 invokedynamic 实现分析(以 Lambda 表达式实现原理为例)
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言对于 invokedynamic 指令的实现需要方法句柄作为前提知识点。可参考 Java JVM 动态方法调用之方法句柄 MethodHandle。本文以 lam...原创 2020-01-17 20:55:14 · 987 阅读 · 1 评论 -
Java JVM 动态方法调用之方法句柄 MethodHandle
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、前言一般情况我们通过反射可以调用方法,JDK 7 以后新增了 java.lang.invoke 包也可以进行方法调用。下面我们用简单用代码演示这两个包 API 的不同,然后对两个...原创 2020-01-17 19:36:48 · 1330 阅读 · 1 评论 -
Java JVM 从方法调用的角度分析重载、重写的本质
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言方法调用并不等同于方法中的代码被执行,Class 文件里面存储的都只是符号引用。这个特性给 Java 带来了更强大的动态扩展能力,某些调用需要在类加载期间,某些到...原创 2020-01-15 19:46:22 · 1183 阅读 · 0 评论 -
Java JVM 字节码-为什么 new 指令后执行 dup 指令?
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 为什么 new 指令后执行 dup 指令?关于字节码相关问题,可参考本专栏相关文章。在此不做介绍,直接进行分析。在做字节码分析时,发现每次 new 指令后跟随着 dup ...原创 2020-01-15 15:57:01 · 4525 阅读 · 0 评论 -
Java JVM 运行时栈帧结构、字节码分析实战
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言Java 虚拟机以方法作为最基本的执行单元,「栈帧」则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储...原创 2020-01-14 21:05:11 · 844 阅读 · 0 评论 -
Java JVM 字节码指令,字节码指令大全
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(操作码)以及跟随其后的零至多个代表此操作所需的参数(操作数)构成。如果不考虑异常处理的话,那...原创 2020-01-14 17:11:23 · 981 阅读 · 0 评论 -
Java-JVM(虚拟机)面试题
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。自我面试背书式的学习对技术的提升帮助很小。本篇内容不涉及答案,答案需要去相关专栏学习。把面试看作是费曼学习法中的回顾、授课环节。首先我们能讲给自己听,如果不满意再回炉学习总结,如此反复。我们试着在一年以后再回顾这些知识。CSDN-同步发布 Java...原创 2020-01-12 19:02:31 · 316 阅读 · 0 评论 -
Java JVM JDK9-类加载机制 双亲委派模式
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言Java 源文件最终编译为 Class 文件,Class 文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。本节内容主要介绍虚拟机如何加载这...原创 2020-01-09 19:14:37 · 1761 阅读 · 1 评论 -
Java JVM 故障诊断-高内存占用、内存泄漏
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 排查过程执行 jps -l 命令,定位高内存占用的 PID# jps -l1174 org.elasticsearch.bootstrap.Elasticsearc...原创 2020-01-08 16:58:23 · 2005 阅读 · 0 评论 -
Java JVM 故障诊断-高CPU占用
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 排查过程执行 top 命令,定位高 CPU 占用的 PID PID USER PR NI VIRT RES SHR S %CPU %MEM...原创 2020-01-08 16:57:32 · 462 阅读 · 0 评论 -
Java JVM JDK13 诊断命令处理工具 jps,jstat,jinfo,jmap,jstack,jcmd
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言本内容基于 JDK 13,相关工具诊断命令官方文档:Java® Development Kit Version 13 Tool Specifications因内容较多...原创 2020-01-08 11:08:22 · 1205 阅读 · 0 评论 -
Java JVM OpenJDK12 Shenandoah 收集器
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 [[toc]]前言最初 Shenandoah 是由 RedHat 公司独立发展的新型收集器项目,在 2014 年 RedHat 把 Shenandoah 贡献给了 Ope...原创 2020-01-07 17:47:50 · 615 阅读 · 0 评论 -
Java JVM JDK11 前的 7 个垃圾收集器
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言JDK 11 前 HotSpot 虚拟机所包含的全部可用的垃圾收集器及组合关系如下图: 关于并发与并行的概念声明:并行:说明同一时间有多条垃圾收集器...原创 2020-01-05 19:52:56 · 1773 阅读 · 0 评论 -
Java JVM 垃圾收集算法
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言本节内容主要说明为什么收集器要分代,以及常见的垃圾回收算法。分代收集收集器应该将 Java 堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程...原创 2020-01-05 15:42:07 · 538 阅读 · 0 评论 -
Java JVM 故障诊断-OutOfMemoryError、OOM 定位
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言实际代码执行过程中经常遇到 OOM 相关异常,本篇内容总结各种 OOM 相关联内存区域。方便定位是哪一块内存区域的问题,然后进行参数调优。实际生产过程中我们可以使用 ...原创 2020-01-05 14:23:20 · 1058 阅读 · 0 评论 -
Java JVM 引用有什么用
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 引用的概念JDK 1.2 版之后引入了软(SoftReference)、弱(WeakReference)、虚(PhantomReference)三种引用。强引用:是最...原创 2020-01-04 20:42:01 · 1235 阅读 · 1 评论 -
Java JVM 对象的死亡过程
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言在堆里面存放着 Java 世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还「存活」着,哪些已经「死去」「死去」即不可能再...原创 2020-01-04 20:41:01 · 672 阅读 · 0 评论 -
Java JVM 从虚拟机的角度看对象的创建与访问
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 1 前言以最常用的虚拟机 HotSpot 和最常用的内存区域 Java 堆为例,深入探讨一下 HotSpot 虚拟机在 Java 堆中对象分配、布局和访问的全过程。2 对...原创 2020-01-03 22:55:01 · 773 阅读 · 0 评论 -
Java JVM 运行时内存数据区域
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 运行时数据区域简介Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机...原创 2020-01-03 16:18:47 · 605 阅读 · 2 评论 -
深入JAVA之 JVM[ jinfo / jps / jstat / jmap / jstack / jhat ]命令说明
pdf:https://github.com/GourdErwa/MyNote/tree/master/doc/J2SE-Tooljava8 docs http://docs.oracle.com/javase/8/Java SE Tools Reference for UNIX http://docs.oracle.com/javase/8/docs/technote原创 2016-10-20 10:22:19 · 1258 阅读 · 0 评论 -
jvm__垃圾收集器介绍,GC 配置参数,回收器选择示例
该内容早期整理,请移步最新笔记内容Java JVM(jdk12)-专栏文章目录汇总基本回收算法引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep...原创 2014-09-10 20:35:04 · 2081 阅读 · 0 评论