引用类型与值类型

本文详细解释了值类型和引用类型的区别。值类型在内存中直接存储值,每个变量都拥有独立的内存空间;而引用类型则存储指向内存中实际内容的地址,多个变量可以引用同一块内存区域。通过具体代码示例展示了不同类型在赋值和修改过程中的行为差异。
   每一个值类型都有一个独立的内存区域保存自己的值,调用它的时候调用的是他的值,而应用类型调用的是内存中的地址 
比如a1=18,这时候在内存中保存的是18,当把a1付给a2的时候,他们两个应用的是同一个内存空间,a2的值会保存为a1的值,当把a2改为20是,应为a1和a2引用的是同一个所以a1也变成20了,这是引用类型,
值类型是当把a1付给a2时会为a2在开一块新的空间保存a1的值。当把a2改成20时就会在a2的空间保存20,和a1就没关系了。
 1 public class text2 {
 2 
 3     public static void main(String[] args) {
 4         
 5         //内存划分为 栈 和 堆  
 6         
 7         
 8         
 9         //值类型:基本数据类型
10         int i= 1;//保存在栈里
11         int m = i; //把值复制给m
12         
13         i = 11 ;
14         System.out.println(m);
15         
16         
17         
18         
19         //引用类型引用类型:除了基本数据类型,数组,String,类
20         //实际内容存在堆,栈只存对应到堆里的地址
21         
22         int [] a = new int [] {1,2,3,4};
23         int [] b = a; // 把对应到堆的地址给了b
24         
25         a[2] = 100 ;
26         System.out.println("b[2]="+b[2]);
27         
28     
29         
30         
31 
32     }
33 
34 }

 

转载于:https://www.cnblogs.com/zk0533/p/5229035.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值