值类型,引用类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了值类型,引用类型相关的知识,希望对你有一定的参考价值。

值类型 (value type)

  一种由类型的实际值表示的数据类型。如果向一个变量分配值类型,则该变量将被赋以全新的值副本。(这与引用类型不同,在引用类型中,赋值时不创建副本。)值类型通常创建在方法的栈帧上,而不是在垃圾回收堆中。可以对值类型进行装箱,这是一个创建相应引用类型的过程。

引用类型 (reference type) 
  由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型

 1 public class Text {
 2     public static void main(String[] args) {
 3         //内存划分为“栈”和“堆”
 4         
 5         //值类型:基本数据类型
 6         int i=10;//保存在栈内存
 7         int m=i; //把值复制给m
 8         i=11;
 9         System.out.println("m="+m+",i="+i);
10         
11         //引用类型:除了基本数据类型之外的(数组,String,类)
12         //实际内容存在堆里,栈里只存对应到堆的地址
13         int[]a=new int[]{1,2,3,4};
14         int[]b=a;//把对应到堆的地址给b
15         a[2]=100;
16         System.out.println("b[2]="+b[2]);
17         
18     }
19 
20 }

技术分享

以上是关于值类型,引用类型的主要内容,如果未能解决你的问题,请参考以下文章

C# 值类型和引用类型

哪些类型的代码需要注意右值引用?

String为值类型还是引用类型

Bash的变量类型

引用类型与值类型在编码上的区别

在本地引用 TypeScript dom lib 类型