类是引用类型,结构是值类型,所以类存储在堆上,结构存储在栈上
较小的数据使用结构
将一个结构值传递到方法时,传递的是整个数据结构;
传递一个类,实际上是将引用传递到对象,即只有内存地址;
对结构修改,改变的是结构的副本,这是值类型工作方式的定义:传递值的副本;
传递一个引用到类本身意味着在类中修改值,实际上改变的是原始对象;
用自己的话来说就是类只是一个模板,使用new关键字来在堆上创建内存,实例化一个对象,在堆上保存的该实例的地址,变量存放的是实例地址,方法调用作为参数也是传入地址,改变该实例都是改变该地址指向的内存数据,直接对实例进行操作。
结构对象存放在栈上,类似于int值一样,只是用来保存数据,在进行函数调用作为参数传递时只是克隆了一个值,用值传递的方法去传递一个克隆的结构对象,函数内部改变也是更改该克隆结构的值,对原结构不会做修改。