Java基础之对象存储

程序运行时,对象是如何安放的?内存又是如何分配的?

  • 有五个地方可以存储数据

寄存器

这是最快的存储区,因为它位于处理器内部。但存储器的数量极其有限,并且不被外部所控制和感知。

堆栈

位于通用RAM(随机访问存储器),通过堆栈指针操作内存,这同样是一个很快的存储区,仅次于寄存器存储区。创建程序时,java系统必须知道存储在堆栈内所有项的确切生命周期,对象的引用就存储在此,然而java对象并不存储于此。

一种通用的内存池(也位于RAM),用于存储所有的java对象。堆不同于栈的好处是:编译器不需要知道对象的生命周期,因此在堆里分配存储有很大灵活性,当然,为这种灵活性必须要付出相应的代价,用堆进行存储分配和清理可能比用栈进行存储分配花费更多的时间。

常量存储

常量值通常直接存储在程序代码内部,这样做是安全的,因为他们永远不会被改变。

非RAM存储

也就是硬盘,流对象和持久化对象存在于此。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容