博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVM之基本概念
阅读量:5075 次
发布时间:2019-06-12

本文共 1267 字,大约阅读时间需要 4 分钟。

1、类加载子系统:负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间。

2、方法区:就是存放类信息、常量信息、常量池信息、包括字符串字面量和数字常量等。方法区是辅助堆栈的块永久区,解决堆栈信息的产生,是先决条件。

3、Java堆:再java虚拟机启动的时候建立Java堆,它是java程序最主要的内存工作区域,几乎所有的对象实例都存放到Java堆中,堆空间是所有线程共享的。堆解决的是数据存储问题,即数据怎么放、放在哪儿。Java堆完全是自动化管理,通过垃圾回收机制,垃圾对象会自动清理,不需要显示的释放。

4、直接内存:Java的NIO库允许Java程序使用直接内存,从而提高性能,通常直接内存速度会优于Java堆。读写频繁的场合可能会考虑使用。

5、每个虚拟机线程都有一个私有的栈,一个线程的Java栈在线程创建的时候被创建,Java栈中保存着局部变量、方法参数、同时Java的方法调用、返回值等。栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。

6、本地方法栈:和Java栈非常类似,最大不同为本地方法栈用于本地方法调用,Java虚拟机允许Java直接调用本地方法。

7、垃圾收集系统:是Java的核心,也是必不可少的,Java有一套自己进行垃圾清理的机制,开发人员无需手工清理。

8、PC寄存器:每个线程私有的空间,Java虚拟机会为每个线程创建PC寄存器,在任意时刻,一个Java线程总是在执行一个方法,这个方法被称为当前方法,如果当前方法不是本地方法,PC寄存器就会执行当前正在被执行的指令,如果是本地方法,则PC寄存器值为undefined,寄存器存放如当前执行环境指针、程序计数器、操作栈指针、计算的变量指针等信息。

9、虚拟机最核心的组件就是执行引擎了,它负责执行虚拟机的字节码,一般用户先进行编译成机器码后执行。

 

根据垃圾回收机制不同,Java堆有可能拥有不同的结构。最为常见的就是将整个Java堆分为新生代和老年代。其中新生代存放新生代的对象或者年龄不大的对象,老年代则存放老年对象。

新生代分为eden区、s0区、s1区,s0和s1也被称为from和to区域,它们是两块大小相等并且可以互换角色的空间。

绝大多数情况下,对象首先分配在eden区,在一次新生代回收后,如果对象还存活,则会进入s0或者s1区,之后每经过一次新生代回收,如果对象存活着它的年龄就加1,当对象达到一定的年龄后,则进入老年代。

在程序中的配置运行参数

-XX:+PrintGC -Xms5m -Xmx20m -XX:+UseSerialGC -XX:+PrintGCDetails

-XX:+PrintCommandLineFlags

实际运行图:

对象创建流程图

一个对象创建在什么位置,我们的JVM会有一个比较细节的流程,根据数据的大小,参数的设置,决定如何创建分配,以及其位置。

 

转载于:https://www.cnblogs.com/Dylansuns/p/6910866.html

你可能感兴趣的文章
提示框插件SweetAlert
查看>>
用户试用体验报告
查看>>
we just reminded you about the Air Jordan 11 “Bred” release
查看>>
获取浏览器端的cookie方法
查看>>
TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。...
查看>>
confuluence wiki , jira, gitlab, bootstrapvaildtor
查看>>
linux IP 设置
查看>>
ajax中Get与Set区别
查看>>
mybatis-config.xml
查看>>
作业2
查看>>
Instruction on how to turn off Nisan engine warning light
查看>>
对比MySQL,你究竟在什么时候更需要MongoDB(转载)
查看>>
Centos7 yum install vim 出现“could not retrieve mirrorlist”
查看>>
3中断和异常
查看>>
[转]tx:advice标签简介
查看>>
spring的下载地址(转)
查看>>
modelsim 仿真clk,rst_n时出现Hiz
查看>>
Apache 配置文件管理
查看>>
易语言支持库 找不到指定的命令/子程序/Dll命令调用名称“取特定目录”。...
查看>>
test
查看>>