值类型,引用类型
值类型 (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 }