装箱,拆箱
//装箱 指的是将值类型转成引用类型
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>,不需要装箱拆箱
静,静,静

浙公网安备 33010602011771号