对象引用有多大?
Android 的 Java VM 中的引用占用的大小是多少?
更多信息:
我的意思是,如果我们有
String str = "Watever";
我需要什么,而不是。-- 是保存在指针(或引用)所指向的位置中的内容。str
"Watever"
"Watever"
str
另外,如果我们有
String str = null;
它消耗多少内存?它和另一个一样吗?str
现在,如果我们有:
Object obj[] = new object[2];
消耗多少,消耗多少?obj
obj[1]
obj[2]
这个问题的原因如下:(以防有人可以推荐一些东西)。
我正在开发一个应用程序,该应用程序可以管理从互联网上下载的许多图片。我开始将这些图片存储在“银行”上(由图片列表组成)。
在图库上显示这些图片时,我曾经在列表中搜索图片(SLOW),然后,如果图片不存在,我曾经显示临时下载图像,直到下载图片为止。
由于这种情况发生在UI Thread上,因此应用程序变得非常慢,因此我想在银行上实现哈希表,而不是我拥有的列表。
正如我之前解释的那样,此搜索发生在UI线程中(我无法更改它)。因此,如果冲突开始减慢线程速度,则它们可能会成为一个问题。
我读过“为了平衡时间和空间效率,哈希表应该大约半满”,但这会使冲突在一半的时间内发生(对于UI线程不实用)。这让我想到有一个非常长的哈希表(与保存的图片数量相比)并使用更多的RAM(具有更少的可用VMHeap)。
在确定哈希表的大小之前,我想知道它将消耗多少内存才能不夸大其词。
我知道与图片可能消耗的内存相比,哈希表的大小可能非常小,但我想确保我消耗的内存不会超过必要的内存。
在问这个问题之前,我搜索了其他地方,在
(是的,我知道其中两个地方相互矛盾,这是问题的部分原因)。