Java学习笔记(重新巩固篇)一

存储区域(6块区域):

1)寄存器。寄存器位于处理器的内部,是保存操作最快的地方。然后,寄存器的数量有限,因此,我们无法通过程序控制变量存储在寄存器中,只能是通过编译器自己分配。

2)堆栈。其实也就是我们平时所说的栈,存储在RAM中,读写速度排行第二,特别快,通过上下移动来分配和回收内存,因此,它分配内存的时候需要知道具体的长度。所以,基本数据类型和句柄(类似C指针)会存储在这一块区域。

3)堆(heap)。用来存储对象的地方,比较常规用途的RAM中的内存池,优点是大小不固定,时间不固定,可以灵活分配,但是速度不如栈,当我们创建了对象以后,对象的实体就会存储在堆中。

4)静态区域。在RAM中固定的位置,只要程序开始运行,它就会常驻在内存中,随时可以调用。我们平时用关键字static声明的一些变量就是存储在这一块区域当中。

5)常数区域。存储在只读存储器(ROM),用来存储一些常量,也是在RAM中。

6)非RAM存储。那就是存储在硬盘当中,这样做的好处是,数据会独立出来,即使没有运行,对象也存在。最典型的就是对象序列化,将对象变成字节流。对象序列化以后,会储存在常数区域,不手动去改变它,重新启动程序时,会自动把它恢复到普通的RAM当中。

数组:

在C和C++中,数组有一个致命的问题,那就是数组是内存块,因此,不允许访问自己内存块以外的数组,不允许再初始化之前访问它,如果这样做了,会导致意想不到的问题。

但是,在JAVA当中,由JVM自动检查,避免了这个问题。缺点是耗了点时间,优点是更安全和更有效率。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值