专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 引用类型和值类型的区别

引用类型和值类型的区别

更新时间:2022-08-31 10:12:38 来源:动力节点 浏览617次

值类型在其自己的内存分配中保存数据,引用类型包含指向另一个保存实际数据的内存位置的指针。引用类型变量存储在堆中,而值类型变量存储在堆栈中。

值类型:

值类型将其内容存储在堆栈上分配的内存中。创建值类型时,会在内存中分配一个空间来存储该值,并且该变量直接保存一个值。如果将其分配给另一个变量,则直接复制该值,并且两个变量独立工作。预定义的数据类型、结构、枚举也是值类型,并且以相同的方式工作。值类型可以在编译时创建并存储在堆栈内存中,因此垃圾收集器无法访问堆栈。

例如

int x = 10;

这里值 10 存储在称为堆栈的内存区域中。

参考类型:

引用类型由包含对对象的引用(地址)但不包含对象本身的引用使用。因为引用类型表示变量的地址而不是数据本身,所以将引用变量分配给另一个变量不会复制数据。相反,它会创建引用的第二个副本,它引用与原始值相同的堆位置。引用类型变量存储在称为堆的不同内存区域中。这意味着当不再使用引用类型变量时,可以将其标记为垃圾回收。引用类型的示例是类、对象、数组、索引器、接口等。

例如

int[] iArray = new int[20];

在上面的代码中,构成数组的 20 个整数所需的空间是在堆上分配的。

以上就是关于“引用类型和值类型的区别”介绍,大家如果想了解更多相关知识,可以关注一下动力节点的Java教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>