装箱,拆箱

//装箱   指的是将值类型转成引用类型

int c = 1;

string b = "2";

object objC = c;

object objB = b;
//拆箱   指将引用类型转成值类型
c = (int)objC;//拆箱,必须显示转换

b = (string)objB;

 

内存变化   装箱是重新分配一个堆空间,不修改原本值类型变量,拆箱同样
int c =1;//栈上有个值类型变量
object objc = c;//栈上创建一个引用类型变量,堆上分配空间,c复制堆空间  //此时三个空间,栈两个,堆一个

int d = (int) objc;//栈上创建一个值类型变量d,堆空间的值复制给d //四个空间,c , objc, 堆,d,且都有数据

 ArrayList能够存储任何类型(值类型,引用类型)
在存 值类型的时候会装箱转成引用类型
为什么不用ArrayList?
1.不安全,需要显示转换(显示转换错了,就会报异常错误)
2.有原本是值类型的,需要拆箱
 
相比之下,应该使用List<T>,不需要装箱拆箱

posted @ 2025-02-02 23:56  爱晒太阳的懒猫。。  阅读(13)  评论(0)    收藏  举报