前天看书发现书中对于java数组这一块儿介绍的知识很少,知识简要的说明了一下java的数组的声明、创建和访问,以及一维数组的一些个简单的特性。查找相关书籍发现java的数组并不是那么简单,它不同于C中的数组,它是一个对象的概念,而且在数组中还有许多细微之处要注意的,今天就罗列一个我碰到的一些错误:
这是我根据书上写的一段java的数组的代码,运行结果如下:
对于这个运行结果产生了如下疑问:
1、数组a赋值给数组b,实际的赋值过程是怎么样的,为什么长度为3的数组赋给长度为6的数组后,长度为6的数组变成了长度为3的数组?
对于这个疑问刚开始有些迷惑,但后来发现是自己的概念理解的不深,数组的名字只是数组在内存中位置指针的一个引用,所以数组a赋值给数组b的过程,其实是一个内存地址变化的过程,b表示的数组内存地址在赋值之后变成了a的数组的内存首地址,所以此时,b和a指向的内存首地址是同一个数组的。所以要正确理解把数组a赋值给数组b和把数组a中的元素赋值给数组b中的元素这两个概念的不同,要牢记数组a赋值给数组b就就是把a的内存地址赋给b,也可以理解成,把a数组给b.
2、数组的声明和初始化
在声明数组的同时就可以初始化数组元素的值,但是这时候不能够指定数组的长度。
在创建new数组的时候要么指定数组的长度,然后逐一赋值,要么不指明数组的长度,然后直接初始化数组元素的值,不能够在指明数组长度的情况下直接初始化数组元素的值。
分享到:
相关推荐
java螺旋数组源码java螺旋数组源码java螺旋数组源码
java 部分数组递增排序 java 部分数组递增排序 java 部分数组递增排序
java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组
47.java求数组中元素的最大值.zip47.java求数组中元素的最大值.zip47.java求数组中元素的最大值.zip47.java求数组中元素的最大值.zip47.java求数组中元素的最大值.zip47.java求数组中元素的最大值.zip47.java求数组...
详解java多维数组,提高对java多维数组的理解
写的Java文件中实现了统计数组中相同元素个数的功能以及统计数组中小于某个元素的所有元素的数量功能,非常的实用。
java中数组的各种用法,工程中以代码的形式,例举java中数组的应用,对初学者有帮助,大鸟就不要看了
Java数组阶段的选择题、填空题、编程题、判断题都有,适合想自己测试下的学生以及准备出题的老师
使用链式编程写法实现Java中byte数组的拼接。例如byte[] bytes = ByteUtils.get().add(0x41).add(07).add(11).add("15288930000").add(0x45).toArray();更灵活用法请参考Mybytes
主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下
java 数组递增排序 java 数组递增排序 java 数组递增排序
Educoder题目:Java入门 - 数组进阶答案解析
java中用数组为一个类定义多个对象,并对其进行实例化
主要介绍了Java数组越界问题实例解析,具有一定参考价值,需要的朋友可以了解下。
java用数组实现的约瑟夫环问题。代码简单易懂。
Java-数组实验.pdf
使用数组构建ATM,采用的是面向对象的设计方法。
java 数组初始化 详解 doc
java中数组的自定义排序,种类繁多,简单实现,可自由操控。