当前位置:首页 » 存储配置 » 对象存储java

对象存储java

发布时间: 2022-09-06 23:15:34

1. java如何将许多对象存储在一个更大概念的对象里面

这里你采纳与否没关系,给你说说编程与内存的关系。你定义的任何变量,常量,类,方法等等,其实都在内存中,没有所谓的把数据存内存中,这概念,你可以想一下电脑重启或关机后,内存中的所有数据,都会丢失,除非你保存到磁盘中去。在内存中的数据有两块,第一、缓冲,一般写数据到磁盘的时候开辟出来的内存空间;第二、缓存,一般是从磁盘读数据到内存中开辟出来的内存空间。会这么使用,原因很简单,磁盘读写数据速度与内存不一致(磁盘的存取效率远远小于内存的存取效率),为了提高数据的存取效率,才会这么干的。一般而言,java中的所谓数据,大部分都是类,从自动引用计数的概念来分析,你想把对象长久的放在内存中,不会被垃圾回收机制释放,注意制药有一个对象在使用/引用你的数据,这条数据就会存在内存中。所以,想servlet中的全局配置参数,随时可以取到还是唯一一份,你可以参考一下。另外内存使用分堆与栈,堆在面向对象编程中存储对象的,栈是方法或函数执行的时候临时开辟的存储空间,方法或函数执行完毕就会释放。希望我的回复能帮助到你,采纳与否没关系。有更好的答案,我就隐藏我的回复。

2. java中的对象是怎么存储的

stack 区存放函数参数和局部变量;
heap 区存放对象;
data 区存放static 的变量或者字符串常量;
code 区存放类中的方法;
stack 栈 -->放方法的参数 和局部变量.就像这样
-----------
void test(String[] args){
int xx = 0;// args和 xx在jvm load class时存放在栈中

}

heap 堆 --> 堆要比栈要大得多. 当一个对象对new出来时,该对象放在heap中,对象引用放在栈中.

data区,也就是数据区 -->静态的变量 和 string的常量.

code 代码区 --->classloader类加载器加载该class时存放类中的方法.

3. java对象在内存中存储的问题。

栈里面就是放new出的对象的地址以及放那几个基本类型。堆里面就是放的你new出来的对象。另外还有个数据池,里面放的就是你弄出来的字符串,一个字符串只存在于内存中一份,就是搁在这池子里的。就比如你弄个String str1="abc";String str2="abc"; str1==str2;是TRUE

4. java存储对象求助

要点:

  1. 首先要你的类必须实现Serializable接口,这样对象才能被序列或反序列化;

  2. 至于io读写操作是java基础且重要的,要自己去学习练习,建议自己下去写。

5. Java中数组对象的存储位置

原帖地址:http://hi..com/sqldebug/blog/item/9758b9ffa605e51a09244d91.html

数组单一说在栈中还是堆中都是错误的,分为几种情况:

1、固定数组在函数体内分配是在栈中的

我们做一个试验,一般DELPHI程序线程的栈大小是1M,如果我们函数体中申请4M大小的数组,报栈溢出,则表示数据的大小是在栈中的。

const
CArrayCount = 1024*1024*4;

procere TForm1.btnMainThreadClick(Sender: TObject);
var
MainThreadArray: array[1..CArrayCount] of Char;
i: Integer;
begin
for i := Low(MainThreadArray) to High(MainThreadArray) do
MainThreadArray[i] := #0;
end;

我把以上代码在主线程中测试时,确实报了栈溢出,如果这时你把DELPHI程序的栈调大为6M则正确,表示在函数体中申请的数组是在栈中的。

2、固定数组在类中分配是在堆中的

我们在类中加一下定义语句

FFixArray: array[1..CArrayCount] of Char;

程序正常,表示在类中分配固定数组是在堆中的。

3、固定数组全局变量是在堆中的

我们在程序定义全部数组

GFixArray: array[1..CArrayCount] of Char;

程序也正常,表示全局固定长度是在堆中的。

3、动态数组不管在函数体中、类中、全局变量都是在堆中

如果你会汇编,看一下汇编就明白了。DELPHI这么实现是合理的,在函数里中分配的固定长度数组放在栈中可以加快运行效率,而且在多线程的情况下,不用像堆分配有加锁。只是大家在写程序的过程中注意在函数里定义太长的数组需要注意,否则栈溢出,程序就崩溃了。

6. Java 中怎么将一个对象存储到数据库

sqlite不能直接存对象,只能一个一个取出来 再存,想直接存对象也可以,看看db4o,也是个数据库 ,需要支持包 ,网络一下

7. java的方法中new的对象存储在内存中那个区域

这个对象存在堆中,还是栈中?
答:堆,new一个对象,一定是在堆中
方法内部new出来的对象,在哪里存着?
答:堆,new出来对象的实例变量都存在堆上面。

栈,这个东西,需要理解为:线程运行时,才会创建,执行完,就没了。
Person p = new Person();
上面这段代码,在执行时,p压入栈,通过局部变量表,找到对应的【实例数据】,执行完毕后释放。

8. Java对象存储到什么地方

一个对象有属性有方法,new这个对象的时候内存中就存在了这个对象

9. Java的对象的内容在堆内存中的存储形式是怎样的

java中数组是以对象形式存在的,栈中存储的是数组对象的地址(即引用),而对象本身不存放在栈中,而是存放在堆中,使用时通过栈中的引用地址找到堆中的实际对象,这里的引用地址类似于C/C++中的指针。

热点内容
ps缓存时间 发布:2025-01-11 11:55:36 浏览:864
云服务器容灾 发布:2025-01-11 11:51:40 浏览:681
phparraysplice 发布:2025-01-11 11:51:40 浏览:319
android学习源码 发布:2025-01-11 11:26:23 浏览:412
服务器都坏了如何恢复 发布:2025-01-11 11:24:04 浏览:353
微博缓存的图片能清理吗 发布:2025-01-11 11:01:49 浏览:307
文字加密器 发布:2025-01-11 11:01:08 浏览:453
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:615
电脑上怎么解压缩文件 发布:2025-01-11 10:51:31 浏览:784
枪战王者如何用账号密码登录 发布:2025-01-11 10:30:56 浏览:938