美文网首页
Java基础之对象存储

Java基础之对象存储

作者: 一生鎻愛 | 来源:发表于2018-09-26 17:12 被阅读0次

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

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

寄存器

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

堆栈

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

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

常量存储

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

非RAM存储

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

相关文章

  • Java基础之对象存储

    程序运行时,对象是如何安放的?内存又是如何分配的? 有五个地方可以存储数据 寄存器 这是最快的存储区,因为它位于处...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • Java 基础学习笔记

    Java 基础之 面向对象六大原则 Java 基础之 重写和重载的区别和各自使用 Java 基础之巧用Object...

  • java基础中实现存储到实体对象中的方法

    1. java基础中实现存储到实体对象中的方法 1.1. 通过Beanutils工具类实现对象的存储 通过requ...

  • 内存溢出OOM和堆栈溢出SOF的示例

    1、Java堆溢出 (OOM) Java堆用于存储对象的实例,只要不断地创建对象,并且保证GC roots到对象之...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • Synchronize的实现原理

    1 Java对象头信息 Java对象在JVM中的结构如下: java对象包括: Mark Word(存储对象的ha...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • JVM深度理解(一):一个对象到底有多大

    java对象内存模型 对象头:Instance Header,存储了Java对象hash、GC年龄、锁标记、cla...

  • Java基础教程之对象引用

    Java基础教程之对象引用 我们之前一直在使用“对象”这个概念,但没有探讨对象在内存中的具体存储方式。这方面的讨论...

网友评论

      本文标题:Java基础之对象存储

      本文链接:https://www.haomeiwen.com/subject/glcjoftx.html