首页 > 基础资料 博客日记

Java的值传递

2023-08-04 18:22:26基础资料围观191

本篇文章分享Java的值传递,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识

1. 形参和实参

  • 实参(实际参数) :用于传递给函数/方法的参数,必须有确定的值。
  • 形参(形式参数) :用于定义函数/方法,接收实参,不需要有确定的值

2. 值传递和引用传递

  • 值传递 :方法接收的是实参值的拷贝,会创建副本。
  • 引用传递 :方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参

3. Java的值传递

/*
   用于说明java是值传递
 */
public static void main(String[] args) {
    int a = 0;
    System.out.println(a);
    method1(a);
    System.out.println(a);
    User zhangsan = new User("zhangsan");
    User lisi = new User("lisi");
    method2(zhangsan, lisi);
    System.out.println("zhangsan:"+zhangsan.getName());
    System.out.println("lisi:"+lisi.getName());
}
//传递基本数据类型
public static void method1(int num){
    num = 1;
    System.out.println("num:"+num);
}
//传递引用数据类型
public static void method2(User person1, User person2){
    User person3 = person1;
    person1 = person2;
    person2 = person3;
    System.out.println("person1:"+person1.getName());
    System.out.println("person2:"+person2.getName());
}

运行结果:

0
num:1
0
person1:lisi
person2:zhangsan
zhangsan:zhangsan
lisi:lisi

4. 结论

1. 在传递基本数据类型时,明显时值传递,形参会创建副本,对形参的操作,都是在这个副本上进行的
2. 在传递引用数据类型时,我们会错误的认为是引用传递,但其实依旧是值传递,只不过传递的是实参的地址罢了
	在上面的例子中,形参只是把里面地址的值换了,并没有影响实参,可见是值传递;实参指向的还是那个空间地址

文章来源:https://www.cnblogs.com/suwuji/p/16524773.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

上一篇:JAVA项目总结
下一篇:java rsa pkcs8转pkcs1

相关文章

本站推荐

标签云