总结点基础知识:
A.变量:(两种角度看)
1. 声明位置角度
局部变量:(方法变量) 存放在栈上-》随着生命周期《其所在的代码块》的结束被系统回收
全局变量:(类变量) 存放在堆上-》随着其所在对象被垃圾回收
2. 数据类型角度
值类型: 直接存放数据本身
引用类型:存放地址--》指向一个对象-》对象存活在堆上
B.结构和类在内存中的对比 (从图中很明显的可以看成内存分配情况)

从此处也可以看出,变量的存放位置,值类型存储在声明的地方(可能在堆也可能在栈),引用类型的就存储在堆中.
C.装箱
值类型变量(a)赋给引用类型变量(b)时,CLR 会拷贝此值类型变量(a)到堆上,此时(b) 就是引用在堆上(a)的拷贝,这个过程就叫做装箱
下图是最好的展示:
D. 拆箱
将已经装箱的值拷贝回去的过程,需要显示进行类型转换.
下图是最好的展示:
简单做个总结,多总结多提高,希望能在博客园长期安家! 欢迎博友光临指导!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-628587/ ,如需转载,请注明出处,否则将追究法律责任。