当前位置:主页 > www.0466000.com >

为什么都在说JVM优化,如何来理解JVM的原理与如何利用

发布时间:2019-02-22   浏览次数:

1.1 类加载子系统与方法区:

java 堆在虚构机启动的时候建立,它是 java 程序最主要的内存工作区域。几乎所有的 java 对象实例都存放在 java 堆中。堆空间是所有线程共享的,这是一块与 java 应用密切相关的内存空间。

1.5 Java 栈

1.2 Java 堆

类加载子系统负责从文件系统或者网络中加载 Class 信息,加载的类信息寄存于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包含字符串字面量和数字常量(这部分常量信息是 Class 文件中常量池部门的内存映射)。

1 JVM 简单结构图

垃圾回收体系是 java 虚构机的重要组成部分,垃圾回收器可能对措施区、java 堆和直接内存进行回收。其中,java 堆是垃圾收集器的工作重点。跟 C/C++不同,java 中所有的对象空间释放都是隐式的,也就是说,java 中不类似 free()或者 delete()这样的函数开释指定的内存区域。对不再利用的垃圾对象,垃圾回收系统会在后盾默默工作,默默查找、标识并释放垃圾对象,实现包括 java 堆、方式区跟直接内存中的全自动化管理。

java 的 NIO 库允许 java 程序应用直接内存。直接内存是在 java 堆外的、直接向系统申请的内存空间。通常访问直接内存的速度会优于 java 堆。因此出于性能的考虑,读写频繁的场合可能会斟酌使用直接内存。由于直接内存在 java 堆外,因而它的大小不会直接受限于 Xmx 指定的最大堆大小,然而系统内存是有限的,java 堆和直接内存的总和依然受限于操作系统能给出的最大内存。

每一个 java 虚拟机线程都有一个私有的 java 栈,一个线程的 java 栈在线程创建的时候被创立,java 栈中保留着帧信息,java 栈中保存着局部变量、办法参数,同时和 java 方法的调用、返回亲密相干。

1.4 垃圾回收系统

1.3 直接内存

Copyright 2018-2025 http://www.366333h.com All Rights Reserved.