侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

Java - 内存分配

barwe
2021-11-08 / 0 评论 / 0 点赞 / 714 阅读 / 493 字
温馨提示:
本文最后更新于 2022-07-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

寄存器

略。

为一个 临时作用域 分配一块临时存储空间,存储在执行该作用域内代码期间产生的 基本类型变量对象引用变量。当一个变量(基本类型或者对象引用)退出作用域时,分配给它的内存区域会被立即释放掉,释放的空间可以立即分配给其他的变量。

存放通过 .new() 方法创建的 数组 或者 对象。当我们执行例如 String name = String.new("barwe") 时:

  1. 上建立一个匿名的 String 类型的对象;
  2. 上建立一个对象引用变量指向 上的对象。

对象引用变量 是一类普通的变量,它与基本类型的变量类似,在退出作用域时会被立即释放。引用变量指向的数组或者对象存储在 中,即使引用变量被立即释放,堆中的数组或者对象占据的空间并不会被立即回收。只有在没有引用变量指向它们时,它们才能被 垃圾回收器 在将来的某个时间点回收。

是一个 运行时数据区,通过 new 及其类似方法创建的对象会保存在堆中,它们不需要程序显式释放,而是由垃圾回收器自动回收。堆是在程序运行时自动分配大小的,编译时不需要确定对象们的生存周期。

堆的存取速度比栈慢,栈的存取速度仅次于寄存器。

静态域

略。

常量池

略。

非RAM存储

0

评论区