基本类型与引用类型区别

来源:互联网 发布:淘宝未激活官换机骗局 编辑:程序博客网 时间:2024/06/06 01:53

基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。

引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。

 

在将一个值赋给变量时,解析器必须确定这个值是基本类型值,还是引用类型值。(Undefined、Null、Boolean、Number、String)这五种基本数据类型的值在内存中分别占有固定大小的空间,因此可以把他们的值保存在栈内存中。对于保存基本数据类型的变量,我们可以说他们是按值访问的,因为我们操作的是它们实际保存的值。

 

如果赋给变量的是一个引用类型的值,则必须在堆内存中去为这个值分配空间。由于这种值的大小不固定,因此不能把它们保存到栈内存中。但内存地址的大小是固定的,因此可以将内存地址保存在栈内存中。这样,当查询引用类型的变量时,就可以首先从栈中读取内存地址,然后在“顺藤摸瓜”找到保存在堆中的值。对于这种查询方式,我们把它叫做按引用访问,因为我们操作的不是实际的值,而是被那个值所引用的对象。

原创粉丝点击