2013-09-05 32 views
0

有一種解決方法,但我的程序工作的「簡單」方式是將大量文本放入字符串變量中。大型數組和內存使用

我會有大約644個對象,每個對象都有自己的String變量。這些變量中的每一個都包含大約9,240個字符(包括空格)。這太多了嗎?

+1

試試看看... – hexafraction

+0

你是什麼意思的「太多」? 644 * 9240 * 2是11,901,120 – CPerkins

+4

如果您看到三根毛髮,這是否太多?這取決於它是否在某人的頭上,或者在某人的湯裏;-) – dasblinkenlight

回答

2

在默認情況下,java字符是Unicode,所以它們的大小是2B。現在:

2B * 9,240 chars = 18480B = ~18KB 

然後

18480B * 644 variables = 11901120B = ~11MB 

由所有String對象佔用的總內存爲11MB〜。

如果你沒有一個老64MB RAM,我認爲這是可以接受

+0

Java字符串佔用的內存多於它包含的字符佔用的字節數的簡單加法。 –

+0

@JunedAhsan我知道,這只是一個例子,即使他們採用5B而不是2,它也不會成爲問題,因爲現代RAM有至少512MB的可用空間 – BackSlash

1

簡單的計算表明,這種對象所需的總空間將小於12 MB - 不是最現代的計算機上的大量內存系統,而不包括嵌入式Java平臺。要進行計算,請將字符數乘以2(因爲Java的char是16位數字)。

相關問題