JVM系列---内存模型概览

JVM内存区域

在这里插入图片描述

  1. java源文件通过javac编译成java字节码文件.class
  2. 通过类加载器ClassLoader加载.class文件,将class文件内容放入内存中各个区域, 那么这各个区域,分别存放的是什么东西呢?
  • 程序计数器: 程序执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能。
  • 栈是运行时的单位,而堆是存储的单位。 解决程序的运行问题,即程序如何执行,或者说如何处理数据;解决的是数据存储的问题,即数据怎么放、放在哪儿。
  1. 堆中存的是实例对象。栈中存的是基本数据类型和堆中对象的引用。一个对象的大小是不可估计的,或者说是可以动态变化的,但是在栈中,一个对象只对应了一个4btye的引用
  2. 方法区中存放虚拟机加载类的相关信息,如静态变量,常量,类信息(构造方法,接口定义),运行时的常量池存在方法区中,但是实例变量存在堆内存中.

常用JVM参数

参数描述
-Xms初始堆大小,默认为物理内存的1/64(<1GB);空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制
-Xmx最大堆大小,默认空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn新生代的内存空间大小
-XX:MaxPermSize设置持久代最大值。物理内存的1/4
-Xss每个线程的堆栈大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值