装箱与拆箱问题的疑惑
有如下一段代码
上述代码中,i1为int值类型,随后赋值给object o1 既为装箱过程并成为引用类型, 然后o1又赋值给o2(根据引用类型特点,实际值应该存放在堆Heap中,而栈Stack存放引用地址,其结果应该一致),请问为什么对 o1 重新赋值后为什么并没有影响o2的值?
int i1 = 2;
object o1 = i1;
object o2 = o1;
object.ReferenceEquals(o1,o2).Dump(); // true
o1 = 5;
o1.Dump("o1"); // return 5
o2.Dump("o2"); // return 2
上述代码中,i1为int值类型,随后赋值给object o1 既为装箱过程并成为引用类型, 然后o1又赋值给o2(根据引用类型特点,实际值应该存放在堆Heap中,而栈Stack存放引用地址,其结果应该一致),请问为什么对 o1 重新赋值后为什么并没有影响o2的值?
...全文
相关推荐
深入理解C# 装箱和拆箱(整理篇)
通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换
深入理解Java中的装箱和拆箱
主要介绍了深入理解Java中的装箱和拆箱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
详解Java 自动装箱与拆箱的实现原理
本篇文章主要介绍了详解Java 自动装箱与拆箱的实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
C# 装箱和拆箱的知识回顾
本篇文章主要介绍了C#的装箱和拆箱的知识点回顾,对大家的学习和复习具有很好的参考价值,需要的朋友一起来看下吧
JAVA装箱拆箱(很详细、易于理解)
很详细的介绍了java装箱拆箱的相关知识,用例子来讲述,易于理解!


