堆&栈&方法区

本文介绍了Java内存的运行流程,重点关注栈、堆和方法区。栈内存负责程序的运行,不存在垃圾回收问题;堆内存存放对象、类、方法、常量等,当其满时会进行垃圾回收,若老年代满则引发OOM错误。方法区存储类信息、常量、静态变量等,JDK1.8后元空间替代了永久区,存储JDK运行所需对象信息。本地方法栈处理native方法调用。
摘要由CSDN通过智能技术生成

运行流程

在这里插入图片描述

栈是一种数据结构,具有先进先出的特点。栈内存主管程序的运行,生命周期和线程同步。栈管运行,堆管存储

线程结束,栈内存也就释放,因此栈不存在垃圾回收问题

8大基本类型+对象引用变量+实例方法运行在栈中

栈满了:StackOverFlowError。原因是栈内存空间不断的添加栈帧,导致栈内存被撑爆

1、一个JVM只有一个堆,堆内存的大小可以调节

2、堆中放的是什么?

  1. 方法
  2. 常量
  3. 变量
  4. 引用类型的真实对象

3、堆内存中细分三个区域:

  1. 新生区(伊甸园区)——分为两部分
    1. 伊甸园区(满了会进行一次轻GC清理空间)
    2. 幸存者区(0,1)
  2. 养老区、
    1. 新生区幸存后会
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值