Java中变量的赋值

    技术2024-03-25  90

    1.基本数据类型

    public class test { public static void main(String[] args) { int n=1; int m=n; System.out.println(m); n=2; System.out.println(m); } }

    输出:

    1 1

    2.引用数据类型

    public class test { public static void main(String[] args) { Tmp x = new Tmp(); Tmp y = x; x.a = 1; System.out.println(y.a); x.a = 2; System.out.println(y.a); } } class Tmp { int a; }

    输出:

    1 2

    由此可见,基本数据类型的变量,修改其中一个变量的值,另一个变量不变;而引用数据类型可以做到这一点。

    下面来分析两种变量赋值时的内存机制

    基本数据类型: 声明局部变量后,存入内存的栈中,两变量的值互不影响

    引用数据类型: 首先我们要明白局部变量分配在栈中,而对象分配在堆中,当两个引用数据类型赋值时,是按地址值传递的,栈中的局部变量存储同一个地址,指向堆中的对象,其中一者修改值,另外一个随之修改

    Processed: 0.009, SQL: 9