java内存空间划分初识(适合初学者)

java内存空间划分初识(适合初学者)

ID:34707851

大小:50.37 KB

页数:4页

时间:2019-03-09

java内存空间划分初识(适合初学者)_第1页
java内存空间划分初识(适合初学者)_第2页
java内存空间划分初识(适合初学者)_第3页
java内存空间划分初识(适合初学者)_第4页
资源描述:

《java内存空间划分初识(适合初学者)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java内存空间划分初识(适合初学者)前言:在编程中,自己归纳过那些变量会被初始化,可是全靠死记硬背,实际开发中还老犯错。后来在看书中,了解是自己对Java内存空间的认识不足。今天通过看视频,查阅书籍和网上查询,简单归纳了Java内存空间划分,使得自己对Java数据分类和运用有很大的提升。现在分享给大家,希望能有一些帮助和启发。同其他软件一样,JVM从计算机获取一片内存。JVM中的内存划分为五个区域,每个区域有着不同的数据处理方式。分别是:1、寄存器。--给CPU用的地方,一般Java程序员可不做过

2、多学习。2、本地方法区。--与所在系统相关,分不同版本。具体系统可部分学习。3、方法区。--后面JAVA应该深入学习部分,初学者可暂时放一放。4、栈内存。--(下面详讲。)5、堆内存。--(下面详讲。)一、栈内存。1、存放的是什么?答:存储的都是局部变量。(局部变量所属方法也进栈中。局部变量都在方法中,方法不进栈,局部变量就没办法进栈。)2、变量所属的作用域一旦结束,该变量就自动释放。(栈内存更新很快,因为变量的生命周期很短。)(局部代码块,限定局部变量的生命周期。)小结:栈内存更新速率很快。一、堆

3、内存。1、存放的什么?答:存储是数组和对象(其实数组就是对象)。凡是new建立在堆中。2、堆内存的特点:(1)每一个实体都有首地址值。(2)堆内存中的每一个变量都有默认初始化值;根据类型的不同而不同。整数是0,小数是0.0或者0.0f,boolean是false,char是‘u000’。(’u0000’指Unicode下的空格。)(3)垃圾回收机制。3、堆特点的附带说明(1)实体存在对内存中,有一个内存地址。(2)堆中如果未赋值会默认初始化,这是堆内存特点,栈内存中变量就不行。(3)实体首地址值

4、存储在引用数据变量中,引用数据变量根据实体首地址指向实体。(4)引用数据变量不像基本数据变量,基本数据变量直接把实体存放在变量空间中。(5)引用数据变量,称为变量A引用了堆中一个实体。(或者指向,这点想C++中指针。)(6)引用数据变量只能指向实体或null。(null取消指向。Null存放位置是引用变量首地址值所在的位置。)(7)实体没有引用,就会被视为垃圾,等待回收,不会立即释放。JVM自有一套垃圾回收机制,不定时。所以堆内存的更新速率不是很快。一、附带简单说明下实体内存地址。例如[I@c171

5、641、@左边的”[I“是指实体类型,这里的”[“指数组,”I”指int类型。2、@右边的”c17164“是Java调用windows,通过hash算法创建的内存地址,绝对不会重复。本身是16进制地址。如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。