相关疑难解决方法(0)

指针大小 - 对象引用有多大?

问题在第一条水平线后完成,其余的是额外信息.

问题很简单,Androids Java VM中的引用消耗的大小是多少?

我的意思是:

如果我们有

String str = "Watever";
Run Code Online (Sandbox Code Playgroud)

我需要什么str,而不是"Watever".- "Watever"保存在指针(或引用)str所指向的位置.

也,

如果我们有

String str = null;
Run Code Online (Sandbox Code Playgroud)

它消耗了多少内存?它是否与另一个相同str

现在,如果我们有:

Object obj[] = new object[2];
Run Code Online (Sandbox Code Playgroud)

需要多少obj消费,多少钱obj[1]obj[2]消费?


queston的原因如下:(如果有人可以推荐一些东西).

我正在开发一款可以保存从互联网下载的许多照片的应用程序.我开始将这些图片存储在"银行"上(在图片列表中一致).

当在图库中显示这些图片时,我曾经在列表中搜索图片(SLOW)然后,如果那时图片不存在,我曾经在下载图片之前显示时间下载图像.

由于这发生在UI线程上,应用程序变得非常慢,所以我考虑在银行而不是我的列表上实现哈希表.

正如我之前解释的那样,这种搜索发生在UI线程中(我不能改变它).因此,如果冲突开始减慢线程,冲突就会成为问题.

我已经读过"为了平衡时间和空间效率,哈希表应该是大约半满",但这使得冲突在一半的时间内发生(对于UI线程不实用).这让我想到了一个非常长的哈希表(与保存的图片数量相比)并使用更多的RAM(具有更少的免费VMHeap).

在确定哈希表的大小之前,我想知道它将消耗多少内存以便不进行扩散.

我知道哈希表的大小可能与图片可能消耗的内存相比非常小,但我想确保我没有消耗更多的内存而不是必需的内存.


在问这个问题之前,我在其他地方之间搜索过

Java中的对象引用有多大,它究竟包含哪些信息?

java中的引用类型大小

哈希教程

(是的,我知道其中两个地方相互矛盾,这就是问题的部分原因).


如果您因任何原因不理解某些内容或想了解更多信息,请发表评论,我会尽快回复.

比你多得多.

java android

19
推荐指数
2
解决办法
2万
查看次数

java中引用变量的大小是多少

java中引用变量的大小是多少?我很确定它不会依赖于架构或是吗?它与C中的指针概念有什么相似之处吗?我尝试但无法得到任何令人信服的答案.

java core

9
推荐指数
1
解决办法
4161
查看次数

引用如何在Java中工作

我正在读一本有效Java的书,它有以下例子.在下面的示例中,作者通过以下行复制ObjectOutputStream中存在的对象的引用

byte[] ref = {0x71, 0, 0x7e, 0, 5}; // Ref #5 
Run Code Online (Sandbox Code Playgroud)

为什么这个引用指向ObjectOutputStream中存在的日期对象?什么存储在参考?

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;

final class Period {
    private final Date start;
    private final Date end;

    /**
     * @param start the beginning of the period
     * @param end the end of the period; must not precede start * @throws IllegalArgumentException
     *        if start is after end
     * @throws NullPointerException if start or end is null
     */
    public Period(Date start, …
Run Code Online (Sandbox Code Playgroud)

java serialization reference

5
推荐指数
1
解决办法
144
查看次数

Java中引用变量大小的差异.(List vs ArrayList)

我和同事讨论了一个问题,除了List接口的优点而不是ArrayList <>作为参考变量之外,我们还使用List <>接口作为对象引用,因为它是轻量级的,与ArrayList相比需要更少的内存<> .

我的假设错了吗?List和ArrayList是否占用相同的空间量?

我试着搜索参考变量大小,但没有任何东西刺激我的胃口.我不是在寻找不同VM中引用变量的大小,但是同一VM中不同引用变量之间的大小存在差异.

如果它是重复的,请评论该问题,所以我可以删除.我搜索并阅读了多种资源,但无法得出结论

java collections arraylist

4
推荐指数
1
解决办法
128
查看次数

为什么不能使用foreach周期将1D数组分配给2D数组?

我有一个返回一维数组的方法。我想循环调用该方法并将结果存储在2D数组中。当使用foreach循环不起作用时,数组结果充满了空指针。

//this doesn't work
...
double[][] results = new double[20][];
for(double[] result : results){
        result = method();
}
...
public double[] method(){
        double[] ret = new double[15];
        //populate ret and do other stuff...
        return ret;
}
Run Code Online (Sandbox Code Playgroud)

但是,当使用常规的“ for”循环遍历数组时,它神奇地起作用了!

...
double[][] results =  new double[20][];
for(int i=0;i<20;i++){
        results[i]=method();
}
...   
public double[] method(){
        double[] ret = new double[15];
        //populate ret and do other stuff...
        return ret;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

java arrays foreach

0
推荐指数
1
解决办法
111
查看次数