Java基础入门——Day08 内存图

Java 内存图主要涉及到 Java 内存模型和 JVM 内存结构。

1. 堆(Heap)

  • 功能:存储对象和数组。
  • 特点:在 JVM 启动时分配,大小可以在启动时指定。垃圾回收器会管理堆内存,清理不再使用的对象。
  • !!!凡是new出来的东西,都在堆当中。!!!

2. 栈(Stack)

  • 功能:存储方法调用的局部变量、方法调用帧和控制信息。
  • 特点:每个线程有自己的栈空间。栈内存管理是自动的,方法调用时分配,返回时释放。
  • !!!!!方法的运行一定要在栈当中。!!!

3. 方法区(Method Area)

  • 功能:存储类的元数据、方法数据和常量池。
  • 特点:各线程共享,存放类结构信息,如字段和方法数据。

4. 常量池(Constant Pool)

  • 功能:存储编译时生成的字面量和符号引用。
  • 特点:用于优化内存使用,如字符串常量池,避免重复创建相同的字符串对象。

5. 程序计数器(Program Counter Register)

  • 功能:跟踪当前线程正在执行的字节码的地址。
  • 特点:每个线程都有一个独立的程序计数器,线程切换时保存和恢复状态。

6. 本地方法栈(Native Method Stack)

  • 功能:存储调用本地(如 C/C++)方法的相关数据。
  • 特点:与 Java 栈类似,但用于管理与 Java 本地接口的交互。

7. 垃圾回收(Garbage Collection)

  • 功能:自动回收不再使用的对象,释放内存。
  • 特点:包括不同的回收算法,如标记-清除、复制、标记-整理等。常见的垃圾回收器有 G1、CMS 和 Parallel GC。

8. 内存模型

  • 功能:定义 Java 内存访问规则和线程间交互。
  • 特点:包括可见性、原子性和有序性。使用 volatile 关键字和同步机制来保证线程安全。

9. JVM 参数

  • 功能:用于控制内存分配和垃圾回收行为。
  • 示例-Xmx(最大堆大小)、-Xms(初始堆大小)、-XX:MaxPermSize(方法区大小)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值