當前位置:首頁 » 編程軟體 » eclipse編譯器限制數組大小能改嗎

eclipse編譯器限制數組大小能改嗎

發布時間: 2023-01-07 09:26:50

java 數組一旦被創建,大小就不能改變。為什麼下面代碼可以

你那相當於重新定義了一個數組。不可改變是說你往裡面放值的時候,當值超過時,數據大小不能自動改變。

㈡ 請問那個數組怎麼改大呀

如果數組大小需要變化,建議使用STL的容器類,如vector模板類等,可以按需分配內存空間。
普通數組無法改變其容量。如果是使用new或malloc分配的,那麼可以先刪除原來的數組,再重新new或malloc一個新的數組。

㈢ Java數組的長度到底能有多大

使用eclipse默認的vm arguments,運行以下代碼:

public static void main(String[] args) {
byte[] array=new byte[61858764];
// short[] shortArray=new short[30929382];
// int[] intArray=new int[15464691];
// long[] longArray=new long[7732345];
}

成功,沒有報錯,可知在eclipse默認的vm arguments下,byte數組的最大長度是61858764,將近60M。
由於short的長度比byte大一倍,所以short數組的最大長度是30929382,是byte數組最大長度的一半,
以此類推,int數組最大長度是15464691,long數組最大長度是7732345

我以為這就是最終結果,後來突然想起修改虛擬機的最大內存,也是這個結果嗎?
我把eclipse的vm arguments設置修改為:-Xms256M -Xmx768M
再次測試代碼,發現byte數組的最大長度可以更長,
通過Windows任務管理器可知,運行代碼的javaw.exe進程佔用的內存也更大(廢話,呵呵)

到此為止,應該可以得出結論,通過修改虛擬機的最大內存,java整型數組的最大長度可以很長,但到底有多長?(肯定比內存小)
我試過定義一個byte數組的長度為618587640,將近600M,沒有報錯,更長的數組似乎沒有意義,我也沒有測試。

㈣ eclipse下用java編程時的二維數組最大能達到多少

java數組用int做引索,最大容量2G=2 147 483 639個元素空間。
同時受「可用內存空間」的大小限制。
java每個對象元素實際佔用內存都大於12位元組,即使你有16GB內存,也不夠2G個對象。
你要計算你每個對象有多大,然後計算你能分配給虛擬機多大的內存,然後根據能分配的內存調整jvm參數,這些東西最好自己實踐下。

㈤ java中數組不能指定大小嗎

是說=號前面的int[]不能指定大小,即不能寫成int[10]之類。

㈥ 「數組的大小是可變的,但所有數組元素的類型必須相同」這句話對么

取決於什麼編程語言里的數組。比如:
c語言的數組大小和元素類型必須在編譯期指定,一經指定不可改變。
Java語言的數組元素類型必須在編譯期指定,數組大小可以運行時指定,但一經指定不可改變。
Perl/Python中的數組(列表)沒有此類限制。

㈦ c語言中數組的大小可以改變嗎

數組大小一旦確定就不能改變。

數組長度必須在編譯時確定,可以使用malloc函數在程序運行時動態分配所需「數組」長度。定義數組需要指定數組的長度,然後系統會根據這個長度分配固定的內存大小。

當出現intarray[10];這種情況的時候,是不可以變的,這時候變數的存儲空間在棧區。當intn;cin>>n;intarray=newint[n];的時候,數組可以根據n輸入的大小去分配內存,這時候數組存在堆區。

(7)eclipse編譯器限制數組大小能改嗎擴展閱讀

長度為0的數組在標准C和C++中是不允許的,如果使用長度為0的數組,編譯時會產生錯誤,提示數組長度不能為0。但在GNUC中,這種用法卻是合法的。

它的最典型的用法就是位於數組中的最後一項,這樣做主要是為了方便內存緩沖區的管理。如果長度為0的數組換為指針,那麼在分配內存時,需採用兩步:

1、需為結構體分配一塊內存空間;

2、再為結構體中的成員變數分配內存空間。這樣兩次分配的內存是不連續的,需要分別對其進行管理。當使用長度為0的數組時,則是採用一次分配的原則,一次性將所需的內存全部分配給它。相反,釋放時也是一樣的。

㈧ 數組超出限制怎麼辦

沒辦法,必須避免這種情況,尤其是寫操作。。。。 兩種辦法,你在寫代碼中,主動避免寫能超出限制的代碼。。。
比如你寫 A[i] ,你只要保證你的代碼中i不會大於限制即可。。。。另一種就是自檢,先判斷i的大小。。。
用數組要保證數組夠你使用,如果發現不夠可以在申請一個數組內存,和原來的組合使用(比如數組鏈表,這個也比較常用,保證數組總是夠長,比如寫一個鏈表類,一旦超出就申請新的,你就不用關心這個問題了,很多智能化的高級語言的數組本身就是一個類,它能夠自動調整長度)。。。當然如果你用的是C語言,可以靠代碼來寫一個這種功能的東西,但由於C不能運算符重載,沒法讓他看起來像個數組,只能是 類似 Datas(void* Array,int Index)的方式來使用數組。

可以使用數孩碃粉度莠道瘋權弗護組一般是要先判斷是否溢出的,可以使用realloc擴展數組大小,可以將數組存儲改為鏈表格式存儲,這樣就不會受到限制了,可以用單向鏈表、雙向鏈表或環形鏈表

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:564
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:853
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:554
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:732
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:655
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:973
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:226
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:85
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:775
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:681