首页 > 编程语言 >Java是值传递(pass-by-value)还是引用传递(pass-by-reference)?

Java是值传递(pass-by-value)还是引用传递(pass-by-reference)?

时间:2022-10-17 08:55:55浏览次数:48  
标签:testa Java System 传递 static pass new public out

The parameter passing mechanism in Java is pass-by-value

example:

public class Test {
    public static void main(String[] args) {
        testa a = new testa();
        a.a=1;
        testa b = new testa();
        b.a = 13;
        a.next = b;
        fool(a);
        System.out.println(a.a);
        System.out.println(a.next);
    }
    static void fool(testa a){
        a.a = 10;
        a.next = null;
    }
}

class testa {
    int a;
    testa next;
}

输出:

10
null

public class Test {
    public static void main(String[] args) {
        testa a = new testa();
        a.a=1;
        testa b = new testa();
        b.a = 13;
        change(a,b);
        System.out.println(a.a);
        System.out.println(b.a);

    }
   
    static void change(testa a, testa b){
        testa tmp = a;
        a.a = 12;
        b.a = tmp.a;
    }
}

class testa {
    int a;
    testa next;
}

输出:

12

12

public class Test {
    public static void main(String[] args) {
        testa a = new testa();
        a.a=1;
        testa b = new testa();
        b.a = 13;
        change(a,b);
        System.out.println(a.a);
        System.out.println(b.a);

    }
    static void change(testa a, testa b){
        testa tmp = a;
        a.a = b.a;
        b.a = tmp.a;
    }
}

class testa {
    int a;
    testa next;
}

输出:

13

13 

public class Test {
    public static void main(String[] args) {
        testa a = new testa();
        a.a=1;
        testa b = new testa();
        b.a = 13;
        change(a,b);
        System.out.println(a.a);
        System.out.println(b.a);

    }
    static void change(testa a, testa b){
        testa tmp = a;
        a = b;
        b = tmp;
    }
}

class testa {
    int a;
    testa next;
}

输出:

1

13

标签:testa,Java,System,传递,static,pass,new,public,out
From: https://www.cnblogs.com/onthemoon/p/16797883.html

相关文章

  • Java基础面试总结
    常见编译型语言:C、C++、Go、Rust等(执行速度快,但开发效率低)常见解释型语言:Python、JavaScript、PHP(开发效率高,但执行效率低)先编译后解释:Java重载和重写有什么区别?重载......
  • Java注解(4):一个真实的Elasticsearch案例
    昨天把拼了一半的注解+Elasticsearch积木放下了,因为东西太多了拼不好,还容易乱。休息了一晚上接着来。 接着昨天,创建elasticsearch文档注解(相当于数据表的注解):/***e......
  • Java集合
    集合框架一.继承体系参考:https://blog.csdn.net/qq_43294932/article/details/122997571二.必背题HashMap的扩容机制?在1.7之前HashMap底层是数组+链表的方式,在......
  • Java中的异常
    Java中的异常 try(  //监控区域,把可能出现异常的代码放到这里面)catch(想要捕获的异常的类型 定义个名字){  捕获到异常后进行的操作。}finally{  不管有......
  • java中的接口
    java中的接口 接口代码如下:在创建java文件的时候把里面的class换成interface,那么这个java文件就变成了接口接口的作用1.约束方法。2.定义一些方法,让不同的人实现。......
  • java中的抽象类
    java中的抽象类//在类名前加上abstract,那么这个类就变成了抽象类。//java的类是单继承的,但是他的接口可以多继承。//在方法前加上abstract,那么这个方法就变成了抽象方法......
  • Java中的static详解
    Java中的static详解packageoop.Demo07;​publicclassStudent{​  //静态代码块,在类创建的时候同时创建,只会执行一次,执行顺序为第一  static{    Sys......
  • Java 静态类、静态方法和静态变量
    (37条消息)Java静态类、静态方法和静态变量_winfredzen的博客-CSDN博客_静态方法在加载的时候会执行return(37条消息)java中引用数据类型有哪些?_xiaoming3526的博客-CS......
  • idea中使用阿里巴巴开发手册插件----Alibaba Java Coding Guidelines
    AlibabaJavaCodingGuidelines p3cp3c是阿里巴巴所研发的代码规范插件,规范基于《阿里巴巴Java开发手册》,在IntelliJIDEA的插件管理中直接搜索AlibabaJavaCodingG......
  • java中的instanceof和类型转换
    java中的instanceof和类型转换父类代码如下:packageoop.Demo06;​publicclassPerson{  publicvoidrun(){    System.out.println("run"); }}​ ......