Java 基元数组和引用数组之间的区别是什么。
我在网络中阅读并找到了引用数组存储引用。如果我没有弄错的话,数组将存储变量的内存地址。如果这就是为什么我在循环字符串数组时看不到内存地址的原因,如下所示Java 基元数组和引用数组之间的区别是什么。,java,arrays,Java,Arrays,我在网络中阅读并找到了引用数组存储引用。如果我没有弄错的话,数组将存储变量的内存地址。如果这就是为什么我在循环字符串数组时看不到内存地址的原因,如下所示 String[] arrNames = new String[3]; arrNames[0] = "John"; arrNames[1] = "Mac"; arrNames[2] = "Alex"; 现在根据定义,arrNames数组将在arrNames[0]、arrNames[1]、arr
String[] arrNames = new String[3];
arrNames[0] = "John";
arrNames[1] = "Mac";
arrNames[2] = "Alex";
现在根据定义,arrNames数组将在arrNames[0]、arrNames[1]、arrNames[2]处存储引用。这意味着内存地址将指向名字,如eJohn,Max和Alex
如果它是基元数组,它将直接存储如下所示的值
int[] Num = new int[3];
Num[0] = 1;
Num[1] = 2;
Num[2] = 3;
Num[0]将直接保存数字1,而不是指向数字的地址
如果我误解了,请纠正我。在java中没有基元数组。即使数组中有基元值,数组本身也被视为数组对象。基元数组和引用数组是完全相似的对象 此外,默认值也应用于基元数组:
int[] myPrimitiveArray = new int[1];
assertTrue(myPrimitiveArray[0], 0) //passed since 0 by default in each cell
同:
Integer[] myReferenceArray = new Integer[1];
assertTrue(myPrimitiveArray[0], 0) //passed since 0 by default in each cell
这与基本变量和对象变量之间的区别相同,只是它们的数量更多。Java故意对您隐藏地址,因此对象变量将存储内存地址。不,对象变量存储对对象的“引用”,这是Java不想让您担心的抽象问题。在低层次上,它基本上是一个指针。