『壹』 java怎麼重新定義int數組長度
在Java中,數組對象Array的長度是在實例化時就定死了,不能修改。
像你這種情況,一般是新建一個數組,重新設置長度,可能的話再將老數組里的值拷貝進去:
public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = { 1, 2, 3, 4, 5 }; // 初始化一個數組,長度是5(梁啟陪定死了)
int[] arr2 = new int[10];// 重橡蠢新初始化數組,長度是10;
// 將老數組復制到新數組
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
// 將老數組對象arr1指向新數組
arr1 = arr2;
// 如果不要復制,最旁帶簡單的就是直接實例化
int[] arr1_1 = new int[5];// 初始化一個數組,長度是5(定死了)
arr1_1 = new int[10]; // 再實例化一次,就是一個新數組,以前數組里的東西就不存在類
}
}
『貳』 java中,如何實現動態為int類型數組增加長度
一般是這樣做的。當訪問越界,或者添加數據超過數組當前的length時候。
重新申請一個大於等於越界長度的數組。
然後通過Sysmem.array將原先數組的內容拷貝到新的內存塊中。
如果刪除了某些元素,使得capacity(容器大小)遠大於實際的length時。可以重新構建trim後的數組並過去。
這也是ArrayList中的實現方法。System.array是一個native方法,拷貝效率比較高。
『叄』 java怎麼定義一個數組的長度
可以通過」Scanner「函數 直接輸入參數的形式,創建一個新數組即可,舉例:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入一個數組長度:");
int length=input.nextInt();//輸入一個正整數就是要定義的數組長度
int a[]=new int[length];
}
}
備註:上面的」 int a[]=new int[renshu]「就是定義的新的數組,其中length就是數組的長度。
『肆』 java 獲取int類型數據長度的方法
可以使用以下三種方法:
一、基於對數的解決方案:
valueOf 方法返回的相關Number對象持有傳遞的參數的值。
該參數可以是基本數據類型,字元串(String),等等。 這個方法是一個靜態方法。該方法可以採取兩個參數,其中一個是String,另一個是基數。
使用語句:int numberOfDigits = String.valueOf(n).length();。
二、使用對數方法:
java.lang.StrictMath.log10() 方法返回以10為底的對數的double值。
它包括了一些情況: 如果參數為NaN或小於零,那麼結果為NaN。 如果參數為正無窮大,那麼結果為正無窮大。 如果參數為正零或負零,那麼結果是負無窮大。 如果參數等於10N的整數n,那麼結果是n。
使用語句:int nDigits = floor(log10(abs(the_integer))) + 1;需要使用inclue math.h庫。
三、判斷數據的大小:
整數類型,任意一個數字<10就是一位數,實現代碼如下:
『伍』 Java數組的長度到底能有多大
Java整型數組的最大長度到底有多長?
今天上網查了一下,各種說法都有,這個問題似乎總困擾我們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,沒有報錯,更長的數組似乎沒有意義,我也沒有測試。
ps:以上測試,我只是定義這么長的數組,並沒有對這些數組進行操作, 所以不敢保證實際操作數組時不報錯(我偷懶了)
而且,我只是對整型數組進行測試,沒有對其他類型數組測試,不敢保證其他類型數組是否也符合這個結論 (又偷懶了)
如果有錯誤,希望大家指出來,不要客氣!
『陸』 JAVA怎樣獲取數組長度
1、打開Eclipse,新建項目,在項目src目錄新建一個類,為了更好操作數組,Java為數組提供length屬性,用來獲取數組長度,語法格式如下。
『柒』 有Java數組int[] a={2,4,6,8,10} 則該數組的長度表達方式
你好御裂羨鎮拍,很高興回答你的問題。
java用數組的長度是有一個length屬性。
題目中數組a的長度用a.length表示。
如果有幫助到你,請點擊採納。
我解答的源談大部分是軟體開發新人遇到的問題,如果有興趣可以關注我。
『捌』 java數組的最大長度是多少
java 中數組的最大長度是多少呢?看一下它的length屬性就可以了。length屬性是32位的有符號整數,它的最大值是2的31次冪,就是2G。為何有這個限制呢?為什麼length的屬性不是long型呢?我們假設一下,如果它是long型的,那麼它的最大長度是2的63次冪。內存永遠也不會有那麼大吧。即使是位元組數組長度是int的,最大長都達芹培到2GB.
由此想到了String,這個傢伙底層也是基於數組的,是一個字元數組。字元是16位的基本類型,一個String的最大長度是多少呢?就是字元數組的最大長度也是2G,占穗旦用內存是4GB。
從JVM的角度來解釋:創建數組的位元組碼是anewarray和newarray,操作數棧的字寬是32位,而這兩個位元組碼的參數都是一個字長,所以無法接受long型的長度嫌族唯參數。不知道這樣解釋是否很牽強。
『玖』 Java數組的長度到底能有多大
菜鳥一般會問這樣的問題, 數組的長度能有多大, 理論上數組的長度為int類型, 最大為Integer.MAX_VALUE =2147483647; 16進制 [0x7fffffff]
如果聲明一個int類型的數組: int[] ints = new int[Integer.MAX_VALUE]; 自己計算一下電腦得開侍絕多少內存給jvm
2147483647 / (1024*1024*1024) = 1.99999999GB 差不多2個G內存,老蘆姿 jvm 100%會報oom, 當然伺服器的內存可能設置比較大, 但是你有必要開嘩埋這么大內存嗎? 懂了沒?