當前位置:首頁 » 存儲配置 » 對象存儲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++中的指針。

熱點內容
有幾家java培訓機構 發布:2025-01-11 13:55:05 瀏覽:472
搭建個人伺服器缺點 發布:2025-01-11 13:54:13 瀏覽:372
怎麼用安卓的手機登錄ios第五人格 發布:2025-01-11 13:44:11 瀏覽:765
登陸Ftp重輸密碼 發布:2025-01-11 13:40:12 瀏覽:331
解壓神器有氧射擊 發布:2025-01-11 13:33:04 瀏覽:851
百度雲的好友在哪個文件夾 發布:2025-01-11 13:32:13 瀏覽:746
2級c語言試題 發布:2025-01-11 13:09:21 瀏覽:939
rft屏幕代碼編譯 發布:2025-01-11 12:54:01 瀏覽:743
安卓手機怎麼清除後台 發布:2025-01-11 12:53:14 瀏覽:805
sgm郵箱伺服器地址 發布:2025-01-11 12:46:03 瀏覽:884