java数组

数组顾名思义一组同一类型的数据,当定义一组数组的时候如下:int[] a,Object [] a等等。java中一切都是对象,数组也不例外,下面验证数据作为对象:先上代码:

    public static void main(String[] args) {
        
        //定义数组并初始化数组
        int[] a1 = {1,2,3,4,5,6};
        
        //定义数组
        int [] a2;
        
        //a2 = new int[a1.length];
        
        //a2引用a1的内存空间,指向同一个对象
        a2 = a1;
        
        for(int i = 0; i< a1.length; i++){
            a2[i] = a1[i];
        }
        for(int i:a2){
            System.out.println("a2: " + i);
        }
        
        for(int i = 0; i < a1.length; i++){
            a2[i] = a2[i]*2;
            System.out.println("a1: " + a1[i]);
            System.out.println("a2: " + a2[i]);
        }
        
        test(a2);
        
        for(int i:a2){
            System.out.println("leave-test()-a2: " + i);
        }
    }
    
    
    public static void test(int[] a){
        for(int i = 0; i<a.length ;i++){
            
            System.out.println("test()--a: " + a[i]);
        }
        
        for(int i = 0; i<a.length; i++ ){
            
            a[i] = a[i] + 100;
        }
    }

 

结果:

a2: 1
a2: 2
a2: 3
a2: 4
a2: 5
a2: 6
a1: 2
a2: 2
a1: 4
a2: 4
a1: 6
a2: 6
a1: 8
a2: 8
a1: 10
a2: 10
a1: 12
a2: 12
test()--a: 2
test()--a: 4
test()--a: 6
test()--a: 8
test()--a: 10
test()--a: 12
leave-test()-a2: 102
leave-test()-a2: 104
leave-test()-a2: 106
leave-test()-a2: 108
leave-test()-a2: 110
leave-test()-a2: 112

一切都是对象的原则,同一个数据内存区可以有多个对象,每个对象指向这个存储区域,当一个对象改变这个数组内存的时候,则其他对象再次引用时就发生变化。

posted @ 2013-01-29 14:30  杨隋  阅读(160)  评论(0编辑  收藏  举报