1.值类型和引用类型:
摘要:.net和Java这一类的高级语言封装性都比较好,很多底层的东西没办法直接看到,就像今天要介绍的值类型和引用类型一样!只有清楚其底层的实现才能深入的进行使用,下面就开始对值类型和引用类型的分析。
一.先看一道例题:
运行的结果如下:
结果1 1000
结果2 1000
结果3: 20
结果4: 200
分析:根据引用类型特点,str1和str2应该都是“abc”,为什么结果是这样的呢?
解释:通过ReferenceEquals()方法可以知道,str1和str2内存地址不同,而str3和str4内存地址相同;可以判定不同的String,相同的值,其引用地址相同,如果赋值为同一个值,在内存中只有一个字符串存在,两个引用的地址相同。由此引出String的不变性。——通俗解释就是给变量赋值时,如果这个值前面出现过,就直接把那个值的地址赋给这个变量。三.简单谈谈浅拷贝和深拷贝: