文章分类 -  JVM

分布式事务处理
摘要:事务事务:多个命令打包进FIFO队列,然后一次性,顺序执行队列中的命令。 数据库事务 (本地)ACID原子性 :一个事务的操作队列 ABC,要么ABC 全部完成,要么全部不完成,ABC一个也不做 一致性 : 事务中如果出现一个步骤错误,就自动回滚,返回原始系统状态。 既,事务前后数据库的状态都是有效 阅读全文

posted @ 2019-03-15 17:34 我是司 阅读(173) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 11:08 我是司 阅读(416) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 11:06 我是司 阅读(93) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 11:05 我是司 阅读(198) 评论(0) 推荐(0) 编辑

JVM学习十:JVM之垃圾收集器及GC参数
摘要:一、堆的回顾 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块比较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。当回收时,将Eden和Survivor中还存活着的对象一次性地复制到另外一块Survi 阅读全文

posted @ 2019-01-28 11:02 我是司 阅读(350) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 11:01 我是司 阅读(932) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 11:01 我是司 阅读(225) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 10:58 我是司 阅读(551) 评论(1) 推荐(0) 编辑

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

posted @ 2019-01-28 10:57 我是司 阅读(165) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 10:56 我是司 阅读(161) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 10:56 我是司 阅读(228) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 10:55 我是司 阅读(141) 评论(0) 推荐(0) 编辑

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

posted @ 2019-01-28 10:55 我是司 阅读(158) 评论(0) 推荐(0) 编辑

JVM学习一:JVM之类加载器概况
摘要:一、Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡.如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Ja 阅读全文

posted @ 2019-01-28 10:54 我是司 阅读(120) 评论(0) 推荐(0) 编辑

JVM详解2.垃圾收集与内存分配
摘要:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进来,墙里面的人却想出来。 2.1 对象是否需要回收 2.1.1 引用计数法算法 原理:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1,任何时刻计数器都为0的对象就是不可能再 阅读全文

posted @ 2019-01-07 10:32 我是司 阅读(246) 评论(0) 推荐(0) 编辑

JVM入门指南
摘要:一、什么是JVM? JVM简介: JVM是Java Virtual Machine的缩写,中文翻译为Java虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。简单来说JVM是用来解析和运行Java程序的。 Java有一个非常重要的特点“ 阅读全文

posted @ 2019-01-07 09:06 我是司 阅读(145) 评论(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
点击右上角即可分享
微信分享提示