A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiangkaizhuo 中级黑马   /  2016-3-24 21:14  /  354 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失
引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问

Java中到底是传值还是传址
1,既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
2,java中只有传值,因为地址值也是值(出去面试都说这种,支持者是高司令(java之父))
*/
class Test3_Array {
        public static void main(String[] args) {
                /*int a = 10;
                int b = 20;
                System.out.println("a:"+a+",b:"+b);                        //a = 10,b = 20
                change(a,b);
                System.out.println("a:"+a+",b:"+b);                        //?*/

                int[] arr = {1,2,3,4,5};
                change(arr);
                System.out.println(arr[1]);
        }

        public static void change(int a,int b) {                //a = 10, b= 20
                System.out.println("a:"+a+",b:"+b);                        //a = 10,b = 20
                a = b;                                                                                //a = 20
                b = a + b;                                                                        //b = 40
                System.out.println("a:"+a+",b:"+b);                        //a = 20, b = 40
        }

        public static void change(int[] arr) {                        //1,4,3,8,5
                for(int x=0; x<arr.length; x++) {
                        if(arr[x]%2==0) {
                                arr[x]*=2;
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马