随笔分类 -  JVM

jvm 学习笔记
JVM学习十三:JVM之堆分析
摘要:本章进入JVM学习的最后一节,此节主要分析的是堆,因为堆是JAVA程序中最常用使用到的地方,因此对这个地方有必要进行下细致的分析特别是OOM,言归正传,进入正文。 一、内存溢出(OOM)的原因 在JVM中,有哪些内存区间? 堆溢出 堆溢出 堆溢出 永久区 生成大量的类 public static v 阅读全文

posted @ 2018-06-21 08:12 pony1223 阅读(762) 评论(1) 推荐(0) 编辑

JVM学习十二:JVM之性能监控工具
摘要:前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器。因此,本节介绍常用的性能监控工具,用于性能监控和问题排查。 一、系统性能监控 系统性能工具用于确定系统运行的整体状态,基本定位问题所在。 Linux – uptime • 系统时间 • 运行时间 阅读全文

posted @ 2018-06-20 23:16 pony1223 阅读(571) 评论(0) 推荐(0) 编辑

JVM学习十一:JVM之深入分析ClassLoader
摘要:本章节准备写的是对类加载器ClassLoader的剖析,但因为前面已经对类加载器做过一些简单的分析和双亲委派机制的分析;因此本章节的侧重点在于实例演示和自定义加载器。 一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文 阅读全文

posted @ 2018-06-20 08:05 pony1223 阅读(546) 评论(0) 推荐(0) 编辑

JVM学习十:JVM之垃圾收集器及GC参数
摘要:接近两个月左右没有写博客,主要是因为小孩过来后,回家比较忙,现在小孩端午送回家了,开始继续之前的JVM学习之路,前面学习了GC的算法和种类,那么本章则是基于算法来产生实际的用途,即垃圾收集器。 一、堆的回顾 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内 阅读全文

posted @ 2018-06-19 23:06 pony1223 阅读(795) 评论(0) 推荐(0) 编辑

JVM学习九:JVM之GC算法和种类
摘要:我们前面说到了JVM的常用的配置参数,其中就涉及了GC相关的知识,趁热打铁,我们今天就学习下GC的算法有哪些,种类又有哪些,让我们进一步的认识GC这个神奇的东西,帮助我们解决了C 一直挺头疼的内存回收问题。 一、GC的概念 首先在介绍GC概念之前,我们先知道下为什么GC,然后我们再讲解GC。众所周知 阅读全文

posted @ 2018-03-30 08:29 pony1223 阅读(628) 评论(0) 推荐(0) 编辑

JVM学习八:常用JVM配置参数
摘要:前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块。 零、在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现 阅读全文

posted @ 2018-03-29 08:22 pony1223 阅读(18130) 评论(1) 推荐(6) 编辑

JVM学习七:JVM之类加载器之类的卸载
摘要:类加载的过程和原理,以及双亲委派机制都已经讲解完成,那么我们今天讲解类加载的最后一节,那么就是类的卸载。 我们知道,当一个类被加载、连接和初始化之后,他的生命周期就开始了,当该类的class对象不再被引用之后,该类的生命周期也就结束了,之后,该类会被类加载器卸载!我们来看以下代码: 以下代码先通过自 阅读全文

posted @ 2018-03-28 08:21 pony1223 阅读(2811) 评论(0) 推荐(0) 编辑

JVM学习六:JVM之类加载器之双亲委派机制
摘要:前面我们知道类加载有系统自带的3种加载器,也有自定义的加载器,那么这些加载器之间的关系是什么,已经在加载类的时候,谁去加载呢?这节,我们将进行讲解。 一、双亲委派机制 JVM的ClassLoader采用的是树形结构,除了BootstrapClassLoader以外?每个ClassLoader都会有一 阅读全文

posted @ 2018-03-27 23:31 pony1223 阅读(802) 评论(0) 推荐(1) 编辑

JVM学习五:JVM之类加载器之编译常量和主动使用
摘要:在学习了前面几节的内容后,相信大家已经对JAVA 虚拟机 加载类的过程有了一个认识和了解,那么本节,我们就继续进一步巩固前面所学知识和特殊点。 一、类的初始化回顾 类在初始化的时候,静态变量的声明语句以及静态代码块都被看作类的初始化语句,Java虚拟机会按照初始化语句在类文件中的先后顺序来依次加载它 阅读全文

posted @ 2018-03-26 23:56 pony1223 阅读(814) 评论(1) 推荐(1) 编辑

JVM学习一:JVM之类加载器概况
摘要:18年转眼就3月份都快结束了,也就是说一个季度就结束了;而我也因为年前笔记本坏了,今天刚修好了,那么也应该继续学习和博客之旅了。今年的博客之旅,从JVM开始学起,下面我们就言归正传,进入正题。 一、Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序。当启动一 阅读全文

posted @ 2018-03-24 20:05 pony1223 阅读(1141) 评论(0) 推荐(1) 编辑

JVM学习三:JVM之类加载器之连接分析
摘要:学习完类加载之加载篇后,让我们继续来看加载之连接,连接分为三个步骤:验证、准备和解析三步,我们将一一分析之。 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。 类加载完毕之后进入到连接阶段,连接就是将已读入到内存的类的二进制数据合并到虚拟机的运行时环境中去!在连接之前,所有的c 阅读全文

posted @ 2018-03-24 20:01 pony1223 阅读(640) 评论(0) 推荐(1) 编辑

JVM学习二:JVM之类加载器之加载分析
摘要:前面一遍,我们对类的加载有了一个整体的认识,而这一节我们细节分析一下类加载器的第一步,即:加载。 一、概念 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 加载.c 阅读全文

posted @ 2018-03-24 20:01 pony1223 阅读(713) 评论(0) 推荐(1) 编辑

JVM学习四:JVM之类加载器之初始化分析
摘要:在经过了前面的加载 和 连接分析之后,这一节我们进入重要的初始化分析过程: 一、认识初始化 初始化:这个似乎与上面的初始化为默认值有点矛盾,我们再看一遍:为累的静态变量赋予正确的初始值,上面是赋予默认值,这里是赋予正确的初始值,什么是正确的初始值,就是用户给赋予的值。我们来看一个例子 我们知道,这个 阅读全文

posted @ 2018-03-24 20:00 pony1223 阅读(760) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示