Java 数组 int[] a int[] b ,(假设 a , b 都已经实例化)引发的问题。
2016-08-16 12:12
274 查看
我们首先看代码:
运行结果如下:
int[] a = {1, 2, 3}; int[] b = {4, 5, 6}; a=b; a[0]=200; for (int i = 0; i <a.length ; i++) { System.out.println(a[i]); } for (int i = 0; i <b.length ; i++) { System.out.println(b[i]); }
运行结果如下:
200 5 6 200 5 6
看到这个结果 我们只是改变了a[0]的值 b[0]也改变了。
原因:a=b,这句话 a b同时指向了b的内存区域。所以只要改变b里面的值,a里面的值也会随之改变;
解决办法:只需要把a=b 这句话替换为:System.arraycopy(b,0,a,0,3);
相关文章推荐
- Java int基本类型和Integer之间引发的问题思考
- 用java收发二进制消息的问题已经解决
- JAVA里面关于byte数组和String之间的转换问题
- java中byte数组与int类型之间的相互转换(两种方式)
- java的数组问题
- 本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- Java对象赋值引发的问题
- JAVA中的indexOf(int ch)方法的问题
- java oracle存储过程/函数(1):字符串数组、int数组传入存储过程
- 有关JAVA数组初始化的问题和加入JAR包的问题
- JAVA里面关于byte数组和String之间的转换问题
- Java高维数组问题
- Java对象数组初始化与NullPointerException问题
- Java对象数组初始化与NullPointerException问题
- JAVA Object[]数组转化问题
- 数组实现的约瑟夫问题(Java)
- Java对象数组初始化与NullPointerException问题
- 读取纯真IP数据库QQwry.dat的java版程序报数组越界异常问题
- 类型转换问题(java会把byte,short和char的运算操作转换为int类型即低精度自动向高精度转换)
- 数组实现的约瑟夫问题(Java)