Android进阶(一):5分钟带你了解JVM的内存分配

前言

JVM的内存分配是一个老生常谈的话题了,但是如果开发者想要开发出高质量的APP,那么JVM的内存分配是必须要了解的。本文主要介绍JVM的内存分配。

JVM的内存区域划分

在网上一些介绍JVM内存分配的文章中,他们将Java的内存大致分为堆内存(heap)和栈内存(stack),这种划分的方式,体现了开发者最关注的区域,但是并不完全准确。JVM会将内存划分为若干个不同的数据区域,主要分为:程序计数器虚拟机栈本地方法栈方法区这五部分。

在介绍这五个内存区域前,我们先了解一下,Java文件被JVM加载到内存中的过程:

  1. A.java文件经过编译器编译,生成A.class字节码文件
  2. 程序访问A这个类时,会通过ClassLoader(类加载器)将A.class加载到JVM的内存中
  3. JVM将内存区域划分为若干个不同的数据区域,主要分为:程序计数器虚拟机栈本地方法栈方法区这五部分。

JVM内存分布

程序计数器

程序计数器的作用

Java程序是多线程的,线程的执行与挂起由CPU来决定。当CPU将一个线程(暂且就叫A线程)挂起,去执行另一线程(暂且叫B线程)时,这时需要记录代码已经执行到的位置;当CPU重新执行A线程时,就可以根据之前记录的位置,知道自己应该从哪行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值