2013-09-05 34 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位数字)。

相关问题