早教吧 育儿知识 作业答案 考试题库 百科 知识分享

值类型和引用类型在作为参数传递时有什么不同简答题

题目详情
值类型和引用类型在作为参数传递时有什么不同简答题
▼优质解答
答案和解析
往深了说,其实是堆和堆栈的区别,值类型是直接定义在堆栈上的,比如int类型,定义一个int实例是不需要new的,而引用类型是在内存堆里开辟空间的,比如一个类,引用一个类的实例是要new的,引用类型在传递参数时实际上是传了一个指针,也就是指向这个类实际内存位置的地址,所以在方法中对类做操作,会直接改变这个类的值,而值类型做参数传到一个方法里操作,是不会影响到原来的值的,多说几句就是:对引用类型的建立和操作所耗费的资源要大大高于值类型,因为访问内存堆要比访问堆栈效率低的多,但由于堆栈的空间很有限,所以只能放值类型进去而不能把所有东西都丢进去