首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JVM进阶之路
三分恶
创建于2021-05-26
订阅专栏
JVM进阶之路
等 74 人订阅
共14篇文章
创建于2021-05-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【JVM进阶之路】十四:类加载器和类加载机制
JVM进阶之路第十四篇,图文并茂讲解Java的三种类加载器和类加载机制,并带你围观Java自己是如何带头破坏双亲委派机制的。
【JVM进阶之路】十三:类加载过程
JVM进阶之路十三篇,再遥远的路程终会到达,再复杂的字节码文件终要加载到虚拟机,那么现在,学习这个过程吧。
【JVM进阶之路】十二:字节码指令
在前面我们已经学习了JVM 字节码是JVM能直接识别的语言,了解了字节码文件的文件结构。在这篇文章里,我们进一步学习字节码的相关指令。
【JVM进阶之路】十一:Class文件结构
Java虚拟机和Class文件是Java实现系统无关性的基石。 Class文件是JVM实现语言无关性的基石。 Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。 每一个 Clas
【JVM进阶之路】十:JVM调优总结
1、调优原则JVM调优听起来很高大上,但是要认识到,JVM调优应该是Java性能优化的最后一颗子弹。比较认可廖雪峰老师的观点,要认识到JVM调优不是常规手段,性能问题一般第一选择是优化程序,最后的选择
【JVM进阶之路】九:性能监控工具-可视化工具篇
JVM进阶之路第九篇,详细介绍JDK自带可视化JVM性能监控工具——JConsole、VisualVM、JMC,简单介绍第三方工具。
【JVM进阶之路】八:性能监控工具-命令行篇
定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。 在实际的故障排查、性能监控中,常常是操作系统的工具和Java虚拟机的工具结合使用。 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。 top命令的输出可以分为…
【JVM进阶之路】七:垃圾收集器盘点
在前面,我们已经了解了JVM的分代收集,知道JVM垃圾收集在新生代主要采用标记-复制算法,在老年代主要采用标记-清除和标记-整理算法。接下来,我们看一看JDK默认虚拟机HotSpot的一些垃圾收集器的实现。 首先来看一下JDK 11之前全部可用的垃圾收集器。 图中列出了七种垃圾…
【JVM进阶之路】六:垃圾收集理论和算法
在前面我们了解了虚拟机如何判断对象可回收,接下来我们了解Java虚拟机垃圾收集的一些理论和算法。 分代收集理论,是基于程序运行对象存活数量和对象年龄之间关系的一套经验法则。 弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的。 强…
【JVM进阶之路】五:垃圾回收概述和对象回收判定
程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,所以这几个区域的内存回收是确定的,随着方法结束或者线程结束,内存自然回收。 Java堆和方法区这两个区域则有着很显著的不确定性:一个接口的多个实现类需…
【JVM进阶之路】四:直面内存溢出和内存泄漏
在Java中,和内存相关的问题主要有两种,内存溢出和内存泄漏。 内存溢出(Out Of Memory) :就是申请内存时,JVM没有足够的内存空间。通俗说法就是去蹲坑发现坑位满了。 内存泄露 (Memory Leak):就是申请了内存,但是没有释放,导致内存空间浪费。通俗说法就…
【JVM进阶之路】三:探究虚拟机对象
单纯从语言层面,新建一个对象,可以通过new、反射、复制、反序列化等等。接下来,我们探究以下在虚拟机中,对象的创建是一个什么样的过程。 检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,就先执行相应的类加载过程 类加载检查通过后,接下来虚拟机将为新生对象分配内存。…
【JVM进阶之路】二:Java内存区域
Java 虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。 程序计数器(Program Counter Register)也被称…
【JVM进阶之路】一:Java虚拟机概览
Java语言是一门通用的、面向对象的、支持并发的程序语言。全球从事Java相关开发的人员已经数以百万计。 从1995年“Java”正式出现以来,Java已经经历了二十几年的发展。 Java语言之所以能广受欢迎,其中的原因之一是Java是一门可以跨平台的语言。 而跨平台的特性就是…