为什么在Java中声明非空数组的空数组合法? - java

奇怪为什么在Java中声明非空数组为空是合法的:

int[][] array = new int[0][1];

System.out.println(array[][0]); //won't compile.
System.out.println(array[0][0]) //triggers an out of bounds exception.

附言我已经阅读了零尺寸数组的相关问题:Why does Java allow arrays of size 0?
是出于同样的原因吗?

参考方案

int[][]数组是一个元素为int[]的数组(即其元素是int的数组)。
就像您可以定义一个空数组int元素一样:

int[] empty = new int[0];

String元素的空数组:

String[] empty = new String[0];

您还可以定义一个空数组int[1]元素:

int[][] empty = new int[0][1];

也许这是语法,在这里有些令人困惑。
如果它是

int[][] empty = new (int[1])[0]

显然,您正在定义一个元素类型为int[1]的空数组。
但是,由于第一个方括号中的数字表示外部数组中元素的数量,因此new int[1][0]并不表示空数组,而是表示单个元素的数组(其单个元素是空的int数组)。

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

图像作为Int Array Java - java

我在用Java编写的网络摄像头应用程序中使用JMyron,该程序返回了网络摄像头视为int []的内容。由于每个int一个像素,它如何将像素的rgb值表示为一个int? 参考方案 一个int是32位。所以int的前8位是红色0-255,后8位是绿色0-255,后8位是蓝色0-255,后8位是alpha值0-255。这就是为什么它称为32位颜色。当我第一次连接…

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…