`
mmdev
  • 浏览: 12916517 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【Java基础知识 - 04】存储数据的位置

 
阅读更多

程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的?有五个不同的地方可以存储数据:

1)寄存器。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量及其有限,所以寄存器根据需求进行分配。不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。

2)堆栈。位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中——特别是对象引用,但是Java对象并不存储于其中。

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

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

5)非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中最基本的两个例子是流对象和持久化对象。


分享到:
评论

相关推荐

    Java基础知识--集合

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。...本资源主要分享了Java基础知识--集合的PPT课件+总结+代码,供大家学习交流~

    Java基础知识点总结.docx

    集合框架:★★★★★,用于存储数据的容器。 76 < java.util > Collection接口 77 < java.util >Iterator接口 78 < java.util >List接口 78 < java.util >Set接口 80 < java.util >Map接口 81 把map集合转成set的...

    教学课件+Java基础知识+PPT课程+Java教学

    Java基础知识课件 1. 引言 Java是一种广泛使用的编程语言,以其跨平台兼容性和健壮性而闻名。Java最初由Sun Microsystems(现为Oracle Corporation的一部分)开发,并于1995年发布。 2. Java的特点 -跨平台兼容性:...

    Java毕业设计-基于地理格网实现的时空知识图谱+源代码+文档说明+数据

    Java毕业设计-基于地理格网的时空知识图谱+源代码+文档说明+数据 将地理信息实体按照时间和位置划分到多个网格,使用网格、时间及各实体之间的位置关系来构建地理知识图谱。 使用本项目API,用户可以使用若干数据集...

    NoSQL数据库系统-Cassandra分布式结构化数据存储视频教程

    一、Cassandra基础知识 二、Cassandra安装环境配置 三、Cassandra的基本使用 四、Cassandra的Java客户端使用 五、Cassandra的核心知识点 4、课程目录 第1节 - 01-数据存储和NoSQL概述 第2节 - 02-NoSQL数据库的分类 ...

    初级java笔试题-asu-ser-222:数据结构和算法

    基础知识(模块 1.1、1.2、1.3、1.4) 1.1 编程模型 Cone.java - 用于表示 3d 几何圆锥形状的类。 LinearNode.java - 用于表示单向链表中的节点的类。 LinearSearchExample.java - 线性搜索算法的实现。 ...

    Fundamentals_of_JAVA_Programming:Java编程基础知识-在本课程中进行课堂和家庭练习

    该存储库专用于在Java基础知识课程中进行课堂和家庭练习。 目录简介。 数据类型。 运营商。 控制流程。 数组。 类和对象。 -Java语言功能和有用的预定义类 套餐。 访问资源。 使用java.time包。 继承。 抽象类。 ...

    java基础知识下载

    1. java中的数据类型划分 java语言的数据类型有简单类型和复合类型: 简单数据类型包括: 整数类型(Integer):byte, short, int, long 浮点类型(Floating):float,double 字符类型(Textual):char ...

    Java毕业设计-JAVA图书馆书库管理系统设计(论文+源代码).rar

    3. **数据持久化**:本系统采用了关系型数据库MySQL作为数据存储,实现了数据的持久化存储,保证了数据的安全性和可靠性。 4. **二次开发定制**:本项目的源代码采用了面向对象的编程思想,具有良好的封装性和可...

    JAVA核心知识点整理.zip

    java核心知识点整理,面试很有用 Java核心知识点2.JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它...

    JAVA课程设计-基于mysql的学生信息管理系统.doc

    " "时间 "计划 "执行结果 " "1 "12月13日 "查阅相关资料 "查阅了JAVA Swing,MySQL等方面的 " " " "准备好基础知识 "相关资料。 " "2 "12月14日 "进行需求分析 "得到需求分析总结。 " "3 "12月14日~21日 "正式设计 ...

    JAVA课程设计-基于mysql的学生信息管理系统(1).doc

    " "时间 "计划 "执行结果 " "1 "12月13日 "查阅相关资料 "查阅了JAVA Swing,MySQL等方面的 " " " "准备好基础知识 "相关资料。 " "2 "12月14日 "进行需求分析 "得到需求分析总结。 " "3 "12月14日~21日 "正式设计 ...

    java基础知识:用Java实现的通用算法,数据结构和设计模式

    Java基础知识 用Java实现的常见算法,数据结构和设计模式。 如果您要改进此存储库,请查看我们的。

    Java开发基于知识图谱的航天数据可视化系统源码+项目使用说明.zip

    Java开发基于知识图谱的航天数据可视化系统源码+项目使用说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、...

    Mastering-Java-for-Data-Science:精通数据科学的Java,由Packt发布

    首先,在启动数据科学应用程序时,我们将修改最重要的内容,然后在深入探讨更高级的主题之前,复习Java和机器学习的基础知识。 我们首先查看现有的数据处理库和带有机器学习算法的库。 之后,我们将讨论诸如分类和...

    初级java笔试题-ser222-public:该存储库包含用于亚利桑那州立大学SER222(数据结构和算法)的公共源文件

    基础知识(模块 1.1、1.2、1.3、1.4) 1.1 编程模型 Cone.java - 用于表示 3d 几何圆锥形状的类。 LinearNode.java - 用于表示单向链表中的节点的类。 LinearSearchExample.java - 线性搜索算法的实现。 ...

    Java课程设计--个人通讯录管理系统(1).doc

    使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握 以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序 的水平。 3 1.3本选题的...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java基础练习项目-仿照雷蛇商城.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工...

Global site tag (gtag.js) - Google Analytics