java存放数据的5个地方
1.寄存器:最快的存储区,位于处理器内部,但是寄存器的数量极其有限,所以寄存器根据需求进行分配,你不 能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。(C/C+允许向寄存器建议寄存器配, 但它不一定采纳你的建议)
2.栈(stack):位于RAM(随机访问存储器)中,通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若 向下移动,则分配新的内存,若向上移动,则释放那些内存。这种存储方法仅次于寄存器。创建程序 时,java系统必须知道存储在堆栈内所有的确切的生命周期,以便上下移动指针。这一约束限制了程 序的灵活性,所有虽然某些java数据存储于堆栈中---特别是对象的引用,但是java对象并不存储在 这里。
3.堆(heap):一种通用的内存池(也位于RAM区中),用于存放所有的java对象,堆相对于栈的好处是:编 译器不需要知道存储的数据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。。当需要 一个对象时,只需要new写一行简单的代码,当执行这行代码是,会自动在堆里进行存储分配。缺点 是,用堆进行存储分配和清理可能比用栈进行存储分配需要更多的时间。
4.常量存储:常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。有时,在嵌入 式系统中,常量本身会和其他部分分隔离开,在这种情况下,可以选择将其存放在ROM(只读存储 器)中。
5.非RAM存储:如果数据完全存活于程序之外,那么他可以不受程序的任何控制,在程序没有运行时也可以存 在。其中两个基本的例子是流对象和持久化对象。在流对象中,对象转化成字节流,通常被发送给 另一台机器。在“持久化对象”中,对象被存放在磁盘上,因此即使程序终止,它们仍可以保持自己 的状态。这种存储方式的技巧在于:把对象转化成可以存放在其他媒介上的事物,在需要是,可恢 复成常规的、基于RAM的对象。java提供了对轻量级持久化的支持,而诸如JDBC和Hibernate这 样的机制提供了更加复杂的堆在数据库中存储和读取对象信息的支持。
java存放数据的5个地方的更多相关文章
- java中数据的存放位置
引用自java编程思想四----2.2.1 程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据:(1) 寄存器.这是最快的保存区域,因为它位于和其 ...
- Java中数据存储分配
(1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给 ...
- 为什么Java大数据是最火爆的编程语言?
未来10年将是大数据,人工智能爆发的时代,到时将会有大量的企业需要借助大数据,而Java最大的优势就是它在大数据领域的地位,目前很多的大数据架构都是通过Java来完成的. 在这个Android.iOS ...
- 5. SOFAJRaft源码分析— RheaKV中如何存放数据?
概述 上一篇讲了RheaKV是如何进行初始化的,因为RheaKV主要是用来做KV存储的,RheaKV读写的是相当的复杂,一起写会篇幅太长,所以这一篇主要来讲一下RheaKV中如何存放数据. 我们这里使 ...
- 42步进阶学习—让你成为优秀的Java大数据科学家!
作者 灯塔大数据 本文转自公众号灯塔大数据(DTbigdata),转载需授权 如果你对各种数据类的科学课题感兴趣,你就来对地方了.本文将给大家介绍让你成为优秀数据科学家的42个步骤.深入掌握数据准备, ...
- android bundle存放数据详解
转载自:android bundle存放数据详解 正如大家所知道,Activity之间传递数据,是将数据存放在Intent或者Bundle中 例如: 将数据存放倒Intent中传递: 将数据放到Bun ...
- java 线程数据同步
java 线程数据同步 由买票实例 //java线程实例 //线程数据同步 //卖票问题 //避免重复卖票 //线程 class xc1 implements Runnable{ //定义为静态,可以 ...
- java将数据写入到txt文件中(txt有固定的格式)
java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...
- JAVA 大数据内存耗用测试
JAVA 大数据内存耗用测试import java.lang.management.ManagementFactory;import java.lang.management.MemoryMXBean ...
随机推荐
- git>>>>1
参考博客:http://www.cnblogs.com/wupeiqi/p/7295372.html - 版本控制,各行各业都需要 - 版本控制工具 - svn - git - git,软件帮助使用者 ...
- webAPI+angularJS文件上传和下载
开发框架 前端 angularJS1.6 下载和保存文件FileSaver:https://github.com/eligrey/FileSaver.js/ 后端 .net WebAPI 1 导入Ex ...
- 51Nod 1080 两个数的平方和(数论,经典题)
1080 两个数的平方和 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果 ...
- BZOJ3529: [Sdoi2014]数表
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3529 挺恶心的数论TAT... 设f[i]是i的约数和,这个可以nln(n)扫出来. ans= ...
- C语言中%d,%p,%u,%lu等都有什么用处
%d 有符号10进制整数(%ld 长整型,%hd短整型 )%hu 无符号短整形(%u无符号整形,%lu无符号长整形)%i 有符号10进制整数 (%i 和%d 没有区别,%i 是老式写法,都是整型格式) ...
- 解决Perhaps you are running on a JRE rather than a JDK?问题
Maven-No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JD ...
- UEP-confirm和alert弹窗
function stuDel(){ var ds = ajaxgrid.getCheckedRecords(); if(ds.length==0){ $.alert("提示信息" ...
- 根据PV统计出前三的热门板块,并统计出热门板块下的用户数--方式一
根据PV统计出前三的热门板块,并统计出热门板块下的用户数--方式一 测试数据 java代码 package com.hzf.spark.study; import java.util.ArrayLis ...
- HTTP的请求方法OPTIONS
HTTP请求方法并不是只有GET和POST,只是最常用的.据RFC2616标准(现行的HTTP/1.1)得知,通常有以下8种方法:OPTIONS.GET.HEAD.POST.PUT.DELETE.TR ...
- 织梦5.7DEDECMS标签大全
1.关键描述调用标签: 2.路径调用标签: {dede:field name='templeturl'/} {dede:global.cfg_templets_skin/} 3.网站标题调用标签: d ...