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

java存储对象

发布时间: 2023-02-28 16:02:08

A. 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时存放类中的方法.

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

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

C. java 用集合存储对象 怎么写

看来兄弟没怎么接触过java啊!
Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet

集合类中可以放任何类型数据的
比如一个Student类
Student stu;

List list;
list.add(stu);
liste.get();就可以获取

HashMap hm;
hm.put("stu",stu);
Student s = (Student)hml.get("stu");就可以获取这个对象。
好好学习
跟对象没有关系的。

D. 有个小小的java问题,请问在java中数组可以储存对象吗如果可以储存的话,那可以再调用储存在

java中数组可以存储对象

public class Test14 {
public static void main(String[] args) {
Book[] book = new Book[3];
book[0] = new Book("java编程思想","Bruce Eckel",108);
book[1] = new Book("菜根谭","洪应明",58);
book[2] = new Book("百年孤独","加西亚·马尔克斯",108);

for(int i=0;i<book.length;i++){
System.out.println(book[i].getName()+"\t"+book[i].getAuthor()+"\t"+book[i].getPrice());
}
}
}

class Book{
private String name;
private String author;
private double price;

public Book(){

}

public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}

public String toString() {
return "Book [author=" + author + ", name=" + name + ", price=" + price
+ "]";
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}

}

E. java怎么把一个对象存到List里

1、可以通过list的add方法来进行添加,可以通过get方法获取到数据内容(即可是任何对象)。

2、实体类型如果为数组的话,可以直接通过list的add方法进行添加转换,举例List<Object> list = new ArrayList<Object>(),定义一个数组类型的list对象String entity = new String[("1232"),创建一个要实体化的数组对象list.add(entity ),给list对象赋值,这样就完成了对象的转换可以获取到list的数据:list.get(0),结果就是entity对象(实际此对象是字符串)。

3、因为Object类型是任何对象类型的父类,所以不需要强制转换即可完成添加。

F. 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这么实现是合理的,在函数里中分配的固定长度数组放在栈中可以加快运行效率,而且在多线程的情况下,不用像堆分配有加锁。只是大家在写程序的过程中注意在函数里定义太长的数组需要注意,否则栈溢出,程序就崩溃了。

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

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

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

热点内容
android应用层 发布:2025-07-08 02:42:32 浏览:299
大唐存储销量 发布:2025-07-08 02:41:11 浏览:580
脚本怎么打开 发布:2025-07-08 02:41:06 浏览:820
贵州电信iPtv升级服务器地址 发布:2025-07-08 02:38:48 浏览:410
电脑怎么链接本地服务器 发布:2025-07-08 02:34:22 浏览:146
android调试webview 发布:2025-07-08 02:26:28 浏览:357
压缩袋鞋子 发布:2025-07-08 02:21:30 浏览:751
为什么安卓打吃鸡感觉有延迟 发布:2025-07-08 02:09:32 浏览:167
课题组服务器如何使用 发布:2025-07-08 02:09:27 浏览:43
sql语句长度限制 发布:2025-07-08 02:07:04 浏览:769