basis 值类型与引用类型
值类型
值类型一般都存储在栈区内存中(也可以存储在堆区),一般来说,值类型在进行参数传递时会重新创建一份新得拷贝,这意味着修改新的拷贝时,旧值不会受到影响。
引用类型
引用类型只能存储在堆区中,并且在大多数语言的参数传递时都不会进行新的拷贝,而是将原本的内存地址再次进行指向。
故引用类型在参数传递时一定要注意对本体的影响。
其他区别
引用类型相比于传递速率上来说,会比值类型更加高效,因为不用一次拷贝过多的数据。
引用类型之所以可以引用,是因为我们创建引用类型的变量,其实是一个标头值,标头值里包含一个指针,指向底层的数据结构,当我们在函数中传递引用类型时,其实传递的是这个标头值的副本,它所指向的底层结构并没有被复制传递,这也是引用类型传递高效的原因。
本质上,我们可以理解函数的传递都是值传递,只不过引用类型传递的是一个指向底层数据的指针,所以我们在操作的时候,可以修改共享的底层数据的值,进而影响到所有引用到这个共享底层数据的变量。

浙公网安备 33010602011771号