把数组作为参数传入一个方法。在该方法中对数组进行一些操作:如果仅仅是插入数据项等一般操作,那么该操作会影响到数组本身;反之,如调整数组大小、对数组赋值等操作,则对数组本身没有影响。
请问其中的原理是什么呢?- public class Tester {
- public static void counter(int count) {
- count = 2;
- }
-
- public static void changeA1(int[] ints) {
- int[] temp = { 4, 5, 6 };
- ints = temp;
- }
- public static void changeA2(int[] ints) {
- ints[0] = 4;
- ints[1] = 5;
- ints[2] = 6;
- }
- public static void main(String[] args) {
- // Output: 1
- // 基本数据类型没有改变。
- int count = 1;
- counter(count);
- System.out.println("count: " + count);
- int[] ints = { 1, 2, 3 };
-
- // Output: 1, 2, 3
- // 对数组赋值,不会改变原始数组。
- changeA1(ints);
- for (int i = 0; i < ints.length; i++) {
- System.out.print(ints[i] + " ");
- }
-
- // Output: 4, 5, 6
- // 可以对数组插入新的数据项。
- System.out.println();
- changeA2(ints);
- for (int i = 0; i < ints.length; i++) {
- System.out.print(ints[i] + " ");
- }
- }
- }
复制代码 |