当前位置: 首页 > 编程笔记 >

JAVA中关于变量赋值的值传递机制

赫连秦迟
2023-05-04

  JAVA中关于变量赋值的机制(值传递机制)

  1.如果变量是基本数据类型,此时赋值的是数据的实际值,即实参传递给形参的是实参的值

  2.如果变量是引用数据类型,此时赋值的是保存数据的地址值,即实参传递给形参的是实参的地址

public class VTTest {
    public static void main(String[] args){
        int m = 10;
        int n = m;
        System.out.println("m = " + m + ", n = " + n);//m = 10. n = 10
        n = 20;
        System.out.println("m = " + m + ", n = " + n);//m = 10, n = 20

        Number n1 = new Number();
        n1.num = 100;

        Number n2 = new Number();

        n2.num = n1.num;
        System.out.println("n1.num = " + n1.num + ", n2.num =" + n2.num);//n1.num = 100, n2.num =100

        n2.num = 101;
        System.out.println("n1.num = " + n1.num + ", n2.num =" + n2.num);//n1.num = 100, n2.num =101

        Number n3 = n1; //指向堆空间中同一个对象实体
        System.out.println("n1.num = " + n1.num + ", n3.num =" + n3.num);//n1.num = 100, n3.num =100

        n3.num = 111;
        System.out.println("n1.num = " + n1.num + ", n3.num =" + n3.num);//n1.num = 111, n3.num =111

        //实参传递形参实际数据值
        ValueTransferTest v1 = new ValueTransferTest();
        int a = 10;
        int b = 20;
        v1.swap(a,b);//a = 20, b = 10
        //传入a,b值之后在swap中进行了交换,但调用结束swap中,a和b被销毁
        //实参传递给形参的是真实数据值
        //再输出,则是输出main方法的a和b的值,
        System.out.println("a = " + a + ", b = " + b);//a = 10, b = 20


        //实参传递形参数据地址
        Data d1 = new Data();
        d1.a = 15;
        d1.b = 25;
        System.out.println("a = " + d1.a + ", b = " + d1.b);//a = 15, b = 25

        //引用数据类型,相当于在swap里面data和d1指向同一个地址
        v1.swap(d1);//a = 25, b = 15
        System.out.println("a = " + d1.a + ", b = " + d1.b);//a = 25, b = 15

    }
    public void swap(int a, int b){
        int tem = a;
        a = b;
        b = tem;
        System.out.println("a = " + a + ", b = " + b);

    }

    public void swap(Data data){
        int tem = data.a;
        data.a = data.b;
        data.b = tem;
        System.out.println("a = " + data.a + ", b = " + data.b);
    }

}
class Number{
    int num;
}

class Data{
    int a;
    int b;
}

  JAVA 变量的赋值包括:

  • (1) 在声明变量时赋值

  • (2)声明后再赋值

  • (3)在程序的任何位置声明并设置

  给声明的变量赋予一个属于它的值,用赋值运算符(=)来实现。

 类似资料:
  • 本文向大家介绍详解PHP变量传值赋值和引用赋值变量销毁,包括了详解PHP变量传值赋值和引用赋值变量销毁的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP变量传值赋值和引用赋值变量销毁的具体代码,供大家参考,具体内容如下 php中,上面的代码,变量是怎么存放的呢? 上面的代码变动下,将变量b赋值给变量a,会发生什么? 问题来了,$a = $b,那么是将变量a的指针指向了变量b指针所

  • 主要内容:声明变量,变量赋值Java 语言是强类型(Strongly Typed)语言,强类型包含以下两方面的含义: 所有的变量必须先声明、后使用。 指定类型的变量只能接受类型与之匹配的值。 这意味着每个变量和每个表达式都有一个在编译时就确定的类型。类型限制了一个变量能被赋的值,限制了一个表达式可以产生的值,限制了在这些值上可以进行的操作,并确定了这些操作的含义。 常量和变量是 Java 程序中最基础的两个元素。常量的值是不

  • = 赋值操作符(它的左右两边不能有空白符) 不要搞混了 = 和 -eq,-eq 是比赋值操作更高级的测试。注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符。 例子 4-2. 简单的变量赋值 1 #!/bin/bash 2 # 裸变量 3 4 echo 5 6 # 什么时候变量是“裸”的?比如说,变量名前面没有$? 7 #当变量被赋值

  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 以前,为变量赋值,只能直接指定值。 var a = 1; var b = 2; var c = 3; ES6允许写成下面这样。 var [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属

  • 上节课我们学习了 Go 语言中的两种变量声明方式:单变量声明方式和多变量声明方式。既然已经声明了变量,那么下一步肯定要给变量赋值并使用,这节课我们就来学习下在 Go 语言中如何给一个变量赋值: 1. 单变量赋值 Go 语言的赋值使用的是 = 符号,赋值过程可以在变量声明时赋值,也可以在变量声明之后赋值,如果在变量声明时直接赋值,可以不用声明变量类型。需要注意的是 Go 语言变量声明之后会初始化一个