java 内存分配

本文详细阐述了Java内存模型的三大组成部分:方法区、栈内存与堆内存。深入探讨了类加载器如何在加载类文件时提取类信息并保存在方法区内,同时解释了栈内存用于保存局部变量,以及堆内存作为动态数据存储的区域。文章还对比了非静态部分与静态部分的区别,并强调了方法区与堆内存中数据的共享与独立性。



一、方法区:

类加载器在加载类文件时,从中提取了类信息。保存在一个成为方法区的内存逻辑区中。

类信息包括:

(1)非静态部分:包括非静态的方法(包括构造方法)

(2)静态部分(除了非静态部分包含的非静态方法、构造方法和非静态成员变量外有关于类的信息):

①静态成员变量

②静态方法

③静态代码块

④构造代码块

  ……

二、栈内存:

保存局部变量的值:

①用来保存基本数据类型的值

②保存类的实例,即堆内存中对象的引用(地址)

三、堆内存:

用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,该类的方法存在于方法区中。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值