随笔分类 -  JVM

摘要:####24小时稳定性压测Trace #####高并发情况下主要观察VM运行情况 ####一、总体概览 ####如上图所示 #####持久代十分稳定,没有发生OOM ####二、VM区域详情 ####上图为VM每个区间的具体情况 #####1、持久代始终占分配空间的四分之一 #####2、年老代始终 阅读全文
posted @ 2017-02-13 11:49 Andrew.Zhou 阅读(273) 评论(0) 推荐(0) 编辑
摘要:转载: JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分 阅读全文
posted @ 2016-03-29 03:09 Andrew.Zhou 阅读(445) 评论(0) 推荐(0) 编辑
摘要:转载: Java 如何有效地避免OOM:善于利用软引用和弱引用 ##一.了解 强引用、软引用、弱引用、虚引用的概念 在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要 阅读全文
posted @ 2016-03-29 02:50 Andrew.Zhou 阅读(322) 评论(0) 推荐(0) 编辑
摘要:转载: Java垃圾回收机制 ##一.如何确定某个对象是“垃圾”? 在这一小节我们先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?—即通过什么方法判断一个对象可以被回收了。 在java中是通过引 阅读全文
posted @ 2016-03-28 18:55 Andrew.Zhou 阅读(458) 评论(0) 推荐(0) 编辑
摘要:转载: 什么是堆和栈,它们在哪儿? ##问题描述 编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)? 在通 阅读全文
posted @ 2016-03-28 15:14 Andrew.Zhou 阅读(380) 评论(0) 推荐(0) 编辑
摘要:转载: 如何精确地测量java对象的大小-底层instrument API 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象的大小是可行的,不过未必是完全准确的,因为过程中包含对象本身的开销,也许你运气好,正好能碰上,差不多 阅读全文
posted @ 2016-03-28 01:40 Andrew.Zhou 阅读(912) 评论(0) 推荐(0) 编辑
摘要:转载: JVM调优总结(一)-- 一些概念 转载: JVM调优总结(二)-- 一些概念 转载: JVM调优总结(三)-- 基本垃圾回收算法 转载: JVM调优总结(四)-- 垃圾回收面临的问题 转载: JVM调优总结(五)-- 分代垃圾回收详述1 转载: JVM调优总结(六)-- 分代垃圾回收详述2 阅读全文
posted @ 2016-03-27 23:01 Andrew.Zhou 阅读(197238) 评论(20) 推荐(72) 编辑
摘要:转载: 理解Java虚拟机体系结构 ##1 概述 众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。 ## 阅读全文
posted @ 2016-03-27 21:15 Andrew.Zhou 阅读(293) 评论(0) 推荐(0) 编辑
摘要:转载: Java虚拟机类加载机制——案例分析 在《Java虚拟机类加载机制》一文中详细阐述了类加载的过程,并举了几个例子进行了简要分析,在文章的最后留了一个悬念给各位,这里来揭开这个悬念。建议先看完《Java虚拟机类加载机制》这篇再来看这个,印象会比较深刻,如若不然,也没什么关系~~ 下面是程序代码 阅读全文
posted @ 2016-03-27 01:31 Andrew.Zhou 阅读(270) 评论(0) 推荐(0) 编辑
摘要:转载: Java虚拟机类加载机制 看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。 public class SSClass 阅读全文
posted @ 2016-03-27 01:16 Andrew.Zhou 阅读(2023) 评论(1) 推荐(0) 编辑
摘要:转载: Java内存管理 前一段时间粗略看了一下《深入Java虚拟机 第二版》,可能是因为工作才一年的原因吧,看着十分的吃力。毕竟如果具体到细节的话,Java虚拟机涉及的内容太多了。可能再过一两年去看会合适一些吧。 不过看了一遍《深入Java虚拟机》再来理解Java内存管理会好很多。接下来一起学习下 阅读全文
posted @ 2016-03-24 16:31 Andrew.Zhou 阅读(4504) 评论(1) 推荐(2) 编辑
摘要:转载: JVM类加载原理学习笔记 (1)类的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)七个阶段 (2)当Java程序需要 阅读全文
posted @ 2016-03-24 16:06 Andrew.Zhou 阅读(1134) 评论(0) 推荐(0) 编辑
摘要:转载: Java内存原型分析:基本知识 ###java虚拟机内存原型 寄存器:我们在程序中无法控制 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 堆:存放用new产生的数据 静态域:存放在对象中用static定义的静态成员 常量池:存放常量 非RAM存储:硬盘等永久存储 阅读全文
posted @ 2016-03-22 12:14 Andrew.Zhou 阅读(405) 评论(0) 推荐(0) 编辑