zoukankan      html  css  js  c++  java
  • JAVA 参数传递

    import java.util.Scanner;
    //值传递  (传递的是值的拷贝,也就是说传递后就互不相关了。)
    public class Main {
        void test1(int a) {
            a = 4;
            System.out.println("test1 a:" + a);
        }
    
        public static void main(String[] args) {
            Main ma = new Main();
            int a = 2;
            ma.test1(a);
            System.out.println("main a: " + a);
    
        }
    
    }
    test1 a:4
    main a: 2
     void dfs(int num) {
            if (num == 0)
                return;
            num--;
            System.out.println(num);
            dfs(num);
        }
    
        public static void main(String[] args) {
    
            Main ma = new Main();
            ma.dfs(3);
    
        }

    2

    1

    0

    import java.util.Scanner;
    //引用传递 (传递的引用的地址,也就是变量所对应的内存空间的地址。)
    //传递前和传递后都指向同一个引用(也就是同一个内存空间)。
    class A {
        public int age = 0;
    }
    
    public class Main {
    
        void test1(A a) {
            a.age = 20;
            System.out.println("test1 age:" + a.age);
        }
    
        public static void main(String[] args) {
            Main ma = new Main();
            A a = new A();
            a.age = 10;
            ma.test1(a);
            System.out.println("main age: " + a.age);
    
        }
    
    }
    test1 age:20
    main age: 20
    import java.util.Scanner;
    
    class A {
        public int age = 0;
    }
    
    public class Main {
    
        void test1(A a) {
            a = new A();
            a.age = 20;
            System.out.println("test1 age:" + a.age);
        }
    
        public static void main(String[] args) {
            Main ma = new Main();
            A a = new A();
            a.age = 10;
            ma.test1(a);
            System.out.println("main age: " + a.age);
    
        }
    
    }
    test1 age:20
    main age: 10

    内存分配示意图

     

     

     

     

    test1 age:20
    main age: 10

    (1):“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。

    (2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式:String str = “Java私塾”;

     参考链接  :https://blog.csdn.net/p4885056000/article/details/79105922
  • 相关阅读:
    JavaScript 各种遍历方式详解
    使用TortoiseGit操作分支的创建与合并
    前端实现图片压缩上传
    改变input的value值,同时在HTML中将value进行改变
    HTML中字体单位px pt em之间的转换
    解决PHP无法接收post超过1000个字段的问题
    解决微信不能扫描下载的问题
    实现类似于百度实时搜索将结果在下拉框中显示的功能
    Python导入路径含特殊字符的包
    大二秋学期记录
  • 原文地址:https://www.cnblogs.com/tingtin/p/15706800.html
Copyright © 2011-2022 走看看