小编ale*_*er1的帖子

N个元素的一维数组是否需要与2D [m] [n]相同的存储量,m*n = N.

这是关于Java中内存分配的问题.

假设我有一个整数A [100]和另一个整数B [10] [10]的数组.他们在Java中需要相同数量的内存还是不同?如果是后者,有什么区别以及它如何与N一起成长?

我在这里只谈到Ns是正数2的幂,所以我们在这里谈论方形2D阵列及其可能的1D表示.

java arrays

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

为什么Java会在这里抛出NullPointerException?

public class Test {

    public int [] x;

    public Test(int N)
    {
       int[] x = new int [N];
       for (int i=0;i<x.length;i++)
       {
           x[i]=i;
           StdOut.println(x[i]);
       }
    }


    public static void main(String[] args) { 

        String path = "/Users/alekscooper/Desktop/test.txt";
        In reader = new In(path);
        int size=reader.readInt();
        StdOut.println("Size = "+size);

        Test N = new Test(size);
        StdOut.println(N.x[3]);

    }

    /* ADD YOUR CODE HERE */

}
Run Code Online (Sandbox Code Playgroud)

大家好.我正在通过阅读Robert Sedgwick关于算法的书来学习Java,并且我正在使用他的库,例如StdOut.但问题是关于Java的一般情况.我不明白为什么Java会抛出NullPointerException.我确实知道这意味着什么,但我不知道为什么会这样,因为这就是我认为我在做的事情:

  1. 读取文件中的整数 - 类Test中数组的大小.在我的测试示例中,size = 10,因此不会发生任何超出范围的事情.

  2. 打印出来.

  3. 创建Test类型的对象N. 在这个对象中,我想我创建了一个我刚从文件中读取的大小数组.为了好玩,我将它从0初始化为size-1并打印出来.到现在为止还挺好.

  4. 在这里一切都开始了.由于我的类是公共的并且我运行了构造函数,我认为我有对象N作为属性具有带有大小元素的数组x.但是,当我试图解决x时,例如,

    StdOut.println(NX [3]);

    Java抛出NullPointerException.

为什么这样?请帮忙,非常感谢你的时间.

java exception

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

标签 统计

java ×2

arrays ×1

exception ×1