https://www.cnblogs.com/Echo_saq/archive/2012/11/09/2762763.html
https://www.jb51.net/article/53668.htm
https://blog.csdn.net/shine_zs/article/details/51160695
4、判断两个对象是否相等
https://www.cnblogs.com/wangchaoyuana/p/7545159.html
5、如何判断值类型和引用类型在内存上的地址?
我们可以通过vs来判断一个变量在栈上以及堆上的地址,其中值类型仅仅在栈上分配内存,我们先看值类型的地址怎么查?如下:
程序卡在断点-》在局部变量所在的区域(vs下方)右击添加监视-》在监视的名称一栏输入"&变量名",即可得到值类型变量在栈上的地址,以及变量的值。
引用类型变量怎么查在栈以及堆上的地址,因为引用类型的变量在栈上的地址只是引用的地址,而其存储的值才是是引用类型成员变量的地址(在堆上的地址),所以当我们对引用类型进行浅拷贝的时候,引用本身在栈上地址发生了变化,而拷贝前拷贝后的成员变量所在的堆上的地址没有发生变化,当我们使用“= =”号判断两个对象是否相等的时候呀,一定要注意“= =”对于值类型来说判断的是值是否相等,对于引用类型来说判断的是两个对象的地址是否相同,即两个引用所存储的成员变量所在的堆上的地址是否相同。
如下图:
6、关于引用对象的理解
publicclass Test
{
}
Test test=new Test();
new关键字创建了一个Test类型的对象,并返回了存储对象的地址给test,test称为引用类型的变量,其存储的正是Test类型生成的一个对象所在的地址,test不是对象!