美文网首页
在上海乐字节学习Java的第十二天

在上海乐字节学习Java的第十二天

作者: 天上的小仙女呀 | 来源:发表于2020-11-03 08:19 被阅读0次

    方法参数的值传递机制
    main方法的数组参数

    public class Hello{
        public static void main(String[] args){
            System.out.println("Hello");
        }
    }
    
    

    参数:

    参数类型 String[ ]
    参数名称:args(arguments)
    main方法是static修饰的,说明直接使用Hello类调用即可。
    在底层是JVM通过Hello.main(new String[ ]{})。
    main方法的String数组参数其实是暴露给程序运行者的,用于给程序传递一个数据信息。
    main方法数据传递
    基本数据类型值传递机制

    //基本数据值传递类型
    class ParameterDemo1 
    {
        public static void main(String[] args) 
        {
            int x = 10;
            System.out.println("main方法前:x = " + x);//10
            change(x);//改变x变量
            System.out.println("main方法后:x = " + x);//10  为什么是10
        }
        static void change(int x){
            System.out.println("change方法前:x = " + x);//120
            x = 120;
            System.out.println("change方法后:x = " + x);//10
        }
    }
    
    

    change方法值传递过程

    引用数据类型值传递机制
    引用数据值传递类型

    class ParameterDemo2 
    {
        public static void main(String[] args) 
        {
            int[] arr = new int[]{23,34};
            arrayPrint(arr);//[23,34]
            svap(arr);//交换第一个和最后一个元素的值
            arrayPrint(arr);//[34,23]
            System.out.println("ending.......");
        }
    
        static void svap(int[] arr){
            int temp = arr[0];//把第一个元素存在中间变量
            arr[0] = arr[arr.length - 1];//把最后一个元素赋值给第一个
            arr[arr.length - 1] = temp;//将中间变量的值赋值给最后一个元素
        }
    
    
        //打印数组元素的方法
        static void arrayPrint(int[] arr){
            if(arr == null){//为了当数组为空引用是打印而不是报错
                System.out.println("null");
                return;//结束方法,否则依然报错
            }
            String ret = "[";
            for(int index = 0;index < arr.length;index ++){
                ret = ret + arr[index];
                if(index != arr.length - 1){
                    ret = ret + ",  ";
                }
            }
            ret = ret + "]";
            System.out.println(ret);
        }
    

    引用数据类型值传递
    基本数据类型传递的是值的副本,而引用数据类型传递的是引用地址值的副本。理解两种不同类型产生结果的原因是关键。

    相关文章

      网友评论

          本文标题:在上海乐字节学习Java的第十二天

          本文链接:https://www.haomeiwen.com/subject/sxfbvktx.html