JVM
文章平均质量分 86
nuaazhaofeng
爱生活,爱coding
展开
-
深入JVM-java虚拟机的基本结构
本文将介绍Java虚拟机的基本结构,各组成部分的作用,以及相互之间是如何协调的。而要了解这些,首先必须了解Java堆、Java栈、永久区和元数据区的基本概念。一、Java虚拟机的架构1.1 类加载子系统类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息放在一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池的信息,包括字符串字面量和数字常量(这部分常量信息是cla原创 2016-12-11 12:26:05 · 371 阅读 · 0 评论 -
深入JVM-常用Java虚拟机参数
一、跟踪调试参数1.1 跟踪垃圾回收-读懂虚拟机日志Java的一大特色就是支持自动的垃圾回收(GC),但是有时候,如果垃圾回收频繁出现,或者占用了太长的CPU时间,就不得不引起重视。此时,就需要一些跟踪参数来进一步甄别垃圾回收器的效率和效果。最简单的一个GC参数是-XX:+PrintGC,使用这个参数启动Java虚拟机后,只要遇到GC,就会打印日志。如果需要更加详细的信息,则可以使用-XX:+Pri原创 2016-12-11 15:34:55 · 296 阅读 · 0 评论 -
深入JVM-垃圾回收概念与算法
一、认识垃圾回收谈到垃圾回收(Garbage Collection,简称GC),GC中的垃圾,特指存在于内存中的、不会再被使用的对象。对于内存空间的管理来说,识别和清理垃圾对象是至关重要的。二、常用的垃圾回收算法2.1 引用计数法(Reference Counting)引用计数法是最经典也最古老的一种垃圾收集算法。引用计数器的实现很简单,对于一个对象A,只有有任何一个对象引用了A,则A的引用计数器就原创 2016-12-11 20:13:16 · 312 阅读 · 0 评论 -
深入JVM-垃圾收集器常用的GC参数
1.与串行回收器相关的参数-XX:+UseSerialGC:在新生代和老年代使用串行收集器-XX:SurvivorRatio:设置eden区大小和survivor区大小的比例-XX:PretenureSizeThreshold:设置大对象直接进入老年代的阈值。当对象的大小超过这个值时,将直接在老年代分配。-XX:MaxTenuringThreshold:设置对象进入老年代的年龄的最大值。每一原创 2016-12-11 21:33:38 · 676 阅读 · 0 评论 -
深入JVM-性能监控工具
一、Linux下的性能监控工具1.1 显式系统整体资源使用情况-top命令top命令的输出可以分为两个部分:前半部分是系统统计信息,后半部分是进程信息。在统计信息中,第一行是任务队列信息,他的结果等同于uptime命令。从左到右以此表示:系统当前时间、系统运行时间、当前登录用户数。最后的load average表示系统的平均负载,即任务队列的平均长度,这三个值分别表示1分钟、5分钟、15分钟到现在的原创 2016-12-11 22:46:55 · 469 阅读 · 0 评论 -
深入JVM-有关String的内存泄漏
什么是内存泄漏?所谓内存泄漏,就是由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,他并不是说物理内存消失了,而是指由于不再使用的对象占据了内存不被释放,而导致可用内存不断减小,最终有可能导致内存溢出。由于垃圾回收器的出现,与传统的C/C++相比,Java已经把内存泄漏的概率大大降低了,所以不再使用的对象会由系统自动收集,但这并不意味着已经没有内存泄漏的可能。内存泄漏实际上更是一个应用问题,这转载 2016-12-14 22:52:25 · 1348 阅读 · 0 评论 -
深入JVM-锁与并发
一、锁在Java虚拟机中的实现与优化1.1 偏向锁偏向锁是JDK 1.6 提出的一种锁优化方式。其核心思想是,如果程序没有竞争,则取消之前已经取得锁的线程同步操作。也就说,若某一锁被线程获取后,便进入偏向模式,当线程再次请求这个锁时,无需进行相关的同步操作,从而节省了操作时间。如果在此之前有其他线程进行了锁请求,则锁退出偏向模式。在JVM中使用-XX:+UseBiasedLocking可以设置启用偏原创 2016-12-17 09:35:32 · 309 阅读 · 0 评论 -
深入JVM-Class装载系统
一、Class文件的装载过程Class类型通常以文件的形式存在(当然,任何二进制流都可以是Class类型),只有被Java虚拟机装载的Class类型才能在程序中使用。系统状态Class类型可以分为加载、连接和初始化3个步骤。其中,连接又可分为验证、准备和解析3步。1.1 类装载的条件Class只有在必须要使用的时候才会被装载,Java虚拟机不会无条件的装载Class类型。Java虚拟机规定,一个类或原创 2016-12-19 10:36:45 · 356 阅读 · 0 评论