计算机五大存储区,你都清楚吗?

  • A+
所属分类:系统文档


共计 646 个字符,预计需要花费 2 分钟才能阅读完成。

Java日常开发过程中,通过new关键字和构造函数创建对象,这些对象是怎么存放安排的呢?尤其是内存是怎么个分配法?
有5个不同的地方可以存储数据:

最快的存储区,位于处理器内部,不过存储空间有限,所以得根据需求进行分配,Java不允许直接控制寄存器,也不能在程序中感知到寄存器的存在。
tips:C和C++可以通过向编译器建议寄存器的分配方式;

存储分配速度仅次于寄存器,位于通用RAM(随机访问存储器)中,通过堆栈指针获得处理器的支持。
tips:堆栈指针向下移动,则分配新内存;向上移动,则释放旧内存 ———一种快速有效的分配存储方法。
存储内容:基本类型变量,对象引用,方法调用过程
tips:C++可在堆栈中直接创建对象

存储分配速度次于堆栈,通用的内存池(也位于RAM区),存放所有的Java对象
tips:只需在程序中使用new写一行简单的代码,即可开辟一处新内存;

常量值通常直接存放在程序代码内部,因为他们永远不会被改变!有些时候,在一些嵌入式系统中,常量会和其他部分分隔开,这种情况下会选择将其存放在ROM(只读存储器)中;
tips:比如说字符串池,如字面常量字符串(”通话”,”重地”)、具有字符串值的常量表达式(String s = “Hello World!”);

如果数据完全存活于程序之外,不受任何程序的任何控制,程序没有运行也可以存在;

流对象——将对象转成字节流,在网络中传输,发给另一台机器;
持久化对象——该对象被存放于磁盘上。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: