首页 课程 师资 教程 报名

引用类型和值类型的区别

  • 2022-08-31 10:12:38
  • 342次 星辉

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

值类型:

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

例如

int x = 10;

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

参考类型:

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

例如

int[] iArray = new int[20];

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

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

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交