随笔分类 - JVM
java 虚拟机
摘要:一、Class文件的装载过程 Class类型通常以文件的形式存在(当然,任何二进制流都可以是Class类型),只有被Java虚拟机装载的Class类型才能在程序中使用。系统状态Class类型可以分为加载、连接和初始化3个步骤。其中,连接又可分为验证、准备和解析3步。 1.1 类装载的条件 Class
阅读全文
摘要:一、锁在Java虚拟机中的实现与优化 1.1 偏向锁 偏向锁是JDK 1.6 提出的一种锁优化方式。其核心思想是,如果程序没有竞争,则取消之前已经取得锁的线程同步操作。也就说,若某一锁被线程获取后,便进入偏向模式,当线程再次请求这个锁时,无需进行相关的同步操作,从而节省了操作时间。如果在此之前有其他
阅读全文
摘要:什么是内存泄漏?所谓内存泄漏,就是由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,他并不是说物理内存消失了,而是指由于不再使用的对象占据了内存不被释放,而导致可用内存不断减小,最终有可能导致内存溢出。 由于垃圾回收器的出现,与传统的C/C++相比,Java已经把内存泄漏的概率大大降低了,所以
阅读全文
摘要:一、Linux下的性能监控工具 1.1 显式系统整体资源使用情况 top命令 top命令的输出可以分为两个部分:前半部分是系统统计信息,后半部分是进程信息。 在统计信息中,第一行是任务队列信息,他的结果等同于uptime命令。从左到右以此表示:系统当前时间、系统运行时间、当前登录用户数。最后的loa
阅读全文
摘要:1.与串行回收器相关的参数 XX:+UseSerialGC:在新生代和老年代使用串行收集器 XX:SurvivorRatio:设置eden区大小和survivor区大小的比例 XX:PretenureSizeThreshold:设置大对象直接进入老年代的阈值。当对象的大小超过这个值时,将直接在老年代
阅读全文
摘要:一、认识垃圾回收 谈到垃圾回收(Garbage Collection,简称GC),GC中的垃圾,特指存在于内存中的、不会再被使用的对象。对于内存空间的管理来说,识别和清理垃圾对象是至关重要的。 二、常用的垃圾回收算法 2.1 引用计数法(Reference Counting) 引用计数法是最经典也最
阅读全文
摘要:一、跟踪调试参数 1.1 跟踪垃圾回收 读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时候,如果垃圾回收频繁出现,或者占用了太长的CPU时间,就不得不引起重视。此时,就需要一些跟踪参数来进一步甄别垃圾回收器的效率和效果。 最简单的一个GC参数是 XX:+PrintGC,使用
阅读全文
摘要:本文将介绍Java虚拟机的基本结构,各组成部分的作用,以及相互之间是如何协调的。而要了解这些,首先必须了解Java堆、Java栈、永久区和元数据区的基本概念。 一、Java虚拟机的架构 1.1 类加载子系统 类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息放在一块称为方法区的内存
阅读全文

浙公网安备 33010602011771号