java 虚拟机(virtual machine)详解
文章平均质量分 96
本专栏旨在解释java中一些基础的行为,也可以说是平常开发不太注意的行为,比较内存的划分各个区的功能,类的加载步骤,加载机制,类加载器,以及常见的GC算法,GC收集器以及如何调优等等,这也是作为我知识体系的一部分的总结吧。
通凡
这个作者很懒,什么都没留下…
展开
-
jvm(四)——JVM自带内存分析工具详解
在进行java程序问题定位时,内存问题定位是很关键的一招。jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,工具的使用会有所限制。所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究和掌握这些命令的使用也让我们更...原创 2018-09-09 18:10:30 · 44412 阅读 · 5 评论 -
jvm(三)——jvm垃圾回收算法以及实现
一、概述java中,垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是都是线程私有的,随线程而生随线程而灭,栈帧(栈中的对象)随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区...原创 2018-09-04 20:33:15 · 15981 阅读 · 8 评论 -
jvm(二)——类的加载过程
本文对类的整体加载步骤进行说明,包含了什么是类的加载,类加载的步骤,类的生命周期, 类加载实现,双亲委派模式以及自定义类加载器,通过本篇文章可以较为细致的了解类加载的全过程,以及这样加载的原因。1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构...原创 2018-08-31 19:49:21 · 2922 阅读 · 3 评论 -
jvm(一)——内存区域划分
前言:jvm内存划分为多个区域,每个不同的区域分别有着不同的功能和不同的用途,本篇博客旨在说清楚区域的划分、名称、属性以及作用,本篇博客是参考了多篇博客的结果,参考博客会在文章结尾进行说明。上图中说明了堆中对象的分配来源,对象实例化在堆中,但是其引用可能在方法区(常量实例),或者虚拟机的栈帧中(java方法中的实例化)和本地方法栈中(本地方法对象的实例化),在下面有详细说明。一.程...原创 2018-08-31 19:29:16 · 1817 阅读 · 2 评论