1.寄存器

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

2.堆栈

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

3.堆

一种通用的内存池(也位于RAM)中,用于存放所有JAVA对象。堆不同于堆栈的地方是:堆不需要知道存储的数据在堆里存活多长时间。因些,在堆里分配存储空间有很大的灵活性。当需要一个对象时,只需要用NEW写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。缺点是用堆进行存储分配和清理要比用堆栈更耗时。

4.常量存储

常量值一般直接放于程序内部,这样做是安全的,因为它们永远不可能改变。如果是嵌入式,可能常量本身会和程序分开,放在ROM中。

5.非RAM存储

如果数据完全存活于程序之外,那么它可以不受任何程序的影响。比如流对象和持久化对象。

java 常量存储_JAVA 存储空间 寄存器 堆栈 堆 常量存储 非RAM存储相关推荐

  1. java 编译 注释_Java编译、注释、常量简介

    java程序运行: .java文件:源文件 javac 字节码文件 java .java文件 --------> .class文件 --------> 结果 编译 运行 1.编译源文件: ...

  2. java hash简易_Java手写简易版HashMap的使用(存储+查找)

    hashmap的基本结构 package com.liuyuhe; public class node { int hash; object key; object value; node next; ...

  3. java基础结构图_java基础之【堆、栈、方法区】结构图

    |--数组实例化过程 ----------------------------------------------------------------------------------------- ...

  4. java 位掩码_Java位掩码控制权限与()或(|)非(~)、的介绍

    1. java 位掩码 java 位掩码,在java开发中很少有场景会用到掩码,但是当系统中需要判断某个对象是否有 某些权限时,可以通过位掩码来做. 位掩码 主要通过位运算,例如与(&).非( ...

  5. antlr 可以用java写吗_java – 我们可以用ANTLR定义一个非上下文语法吗?

    是. (咳嗽). 我的理解是您可以在规则中添加代码.任意代码可以测试任意事物,所以答案是"是".一般来说,我认为你不能用ANTLR很好地做到这一点,但这对于许多有趣的特殊情况非常实 ...

  6. java中二叉树_Java工程师面试1000题224-递归非递归实现二叉树前、中、后序遍历...

    224.使用递归和非递归实现二叉树的前.中.后序遍历 使用递归来实现二叉树的前.中.后序遍历比较简单,直接给出代码,我们重点讨论非递归的实现. class Node { public int valu ...

  7. java堆、栈、堆栈,常量池的区别,史上最全总结

    先说一下栈和堆栈,我们听老一辈的程序员一般都会说堆栈,其实栈就是堆栈的意思,连着叫只是由于历史的原因.博主04年学数据结构的时候,书上都是说的堆栈,FILO(先进后出),也经常拿堆栈和队列,FIFO( ...

  8. java 常量池 堆_Java 内存分配(堆、栈、常量池)

    Java内存分配: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,以及成员方法中的局部变量 ◆堆:存放对象本身(成员变量+成员方法的引用) ◆静态域:存放在对象中用static ...

  9. java 保存数据_java数据存储

    记录一下java中的数据存储: 这是我参考的文章: 在<thinking in java>这本书的第二章也有提到,因为涉及到jvm(我还没看),这个等我之后再补充. 一.六种不同的数据存储 ...

最新文章

  1. Java——SAX生成XML文件
  2. 关于反爬虫,看这一篇就够了
  3. GDCM:VRDS的测试程序
  4. mysql-零基础安装
  5. 关于win安装vir的临时笔记
  6. (一) 双目立体视觉介绍
  7. Spring Cloud Alibaba Seata处理分布式事务及案例实战
  8. CodeProject上的一些摘抄
  9. IMX6Q获取序列号方法
  10. Android 安卓动画 补间动画 - 平移动画
  11. Epicor客制化 - 在VS中进行开发
  12. Nuvoton M0518 之 记录数据到LDROM,数据掉电不丢失的方式
  13. vue 实现 markdown书写博客 showdown
  14. Could not extract response: no suitable HttpMessageConverter found for response type [class com.exam
  15. 根据点云及其对应的四元数与GPS计算出其相对坐标系的经纬坐标(matlab)
  16. LLC谐振变换器的寄生参数对谐振过程影响分析
  17. 微信小程序/社区/信息发布小程序/信息类小程序
  18. matplotlib学习笔记(六)
  19. Allegro教学:关于dangling connection的解释
  20. 当初的愿望实现了吗?

热门文章

  1. Android UI 色板
  2. IE 中的一些脚本问题
  3. 如何通过RFID开发来迎接第四次工业革命(转)
  4. 数据库系统原理(第二章关系数据库 )
  5. [树形dp] Jzoj P1046 寻宝之旅
  6. Java中的属性和方法
  7. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)...
  8. [Luogu1821][USACO07FEB]银牛派对Silver Cow Party
  9. 51NOD 1125(交换机器最小代价) (贪心) 思想 !思想!
  10. iOS tabview 适配问题