首页 > 编程语言 >java 是值传递还是引用传递

java 是值传递还是引用传递

时间:2023-02-10 22:23:04浏览次数:40  
标签:java 变量 对象 传递 修改 引用

首先要明白,修改一个对象,可以是 修改对象的属性值,也能使建立新的引用(指向另一个对象)两种情况

值传递

在函数调用的过程中,参数是 变量的副本,就是复制出来的一个对象,函数中无论怎么修改和原来的变量都没关系

引用传递

在函数调用的过程中,参数是 变量的引用,函数中如果更改,变量本身也会同步修改

共享对象传递

在函数调用的过程中,参数是 变量引用的副本,和变量指向同一个对象,a(实参) ==> obj,b(形参) ==> obj

情况1:如果修改对象属性,a 和 b 都会修改;情况2:如果修改引用(比如 b 指向 obj2),这种情况 a 是不变的,还是指向 obj

结论

共享对象传递是值传递的特殊情况,流程大体一样,只不过一个是复制值,一个是复制引用
java 是共享对象传递没毛病,java 是值传递也没毛病,但是 java 不是引用传递

标签:java,变量,对象,传递,修改,引用
From: https://www.cnblogs.com/hangyssss/p/17110412.html

相关文章

  • 关于Java基础复习-第三天的复习总结
    1、流程控制语句(应用)在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺......
  • 关于Java基础-第四天的复习总结
    1.数组1.1什么是数组【理解】数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2数组定义格式【记忆】1.2.1第一种数据类型[]数组名示例:int[]......
  • 关于Java基础-第五天的复习笔记
    1.方法概述1.1方法的概念(理解)方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集注意:方法必须先创建才可以使用,该过程成为方法定义......
  • 2023-02-10 java方法快速入门
    1.java方法快速入门使用点击查看代码publicclassmethodone{publicstaticvoidmain(String[]args){Personone=newPerson();one.speak......
  • java——spring boot集成redis——redis常用命令——黑马截图复习
                   =======================================================================             ......
  • 关于Java基础复习-第二天的总结笔记
    0、类型转换问题类型转换(理解)在Java中,会存在不同类型的数据需要一起参与运算,所以这些数据类型之间是需要相互转换的,分为两种情况:自动类型转换和强制类型转换。自动类型......
  • java8新特性
    汇报人:...星辰日期:2022-11-16本周重点1.任务进展学习了java8的基础知识,更深层次的了解了Java的新特性2.相关数据lambdalambda表达式的重要特征:可选类型声明:不需要声明参数......
  • Java流程控制
    Java流程控制用户交互Scannernext()一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输入有效字符后才将其后面的空......
  • Java多线程
    ​​Java多线程超详细!​​什么是线程?多线程?线程是一个程序内部的一条执行路径,我们之前启动程序执行后,main方法的执行其实就是一条单独的执行路径。多线程是指从软硬件上实......
  • Java 多线程编程
    Java多线程编程Java给多线程编程提供了内置的支持。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任......