首页 > 代码库 > java中值类型和引用类型的不同实例(一)

java中值类型和引用类型的不同实例(一)

简单分类,java中除了值类型就是对象。值类型就是java中的基本类型,而除了这些基本类型都是对象。

 

[内存] “一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。

值类型的数据具有较快的存取速度。

一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。”(cainiao123hack,2012)

(cainiao123hack,2012)

此话题会分为三部分代码:

第一部分代码为简单示例,第二部分为array中的值和引用,第三部分是指传递和引用传递

以下是第一部分:

public class Topcoder{    public static void  main(String[] args)    {        int a=2;        int b=a;        System.out.println(b);        System.out.println(a);                b=3;        System.out.println(b);        System.out.println(a);        }}

output为:

2
2
3
2

 

class Number{    public int num;}public class Topcoder{    public static void  main(String[] args)    {        Number a=new Number();        a.num=2;        Number b=a;        System.out.println(b.num);        System.out.println(a.num);                b.num=3;        System.out.println(b.num);        System.out.println(a.num);        }}

output为:

2
2
3
3

reference:

cainiao123hack,2012, http://blog.csdn.net/cainiao123hack/article/details/7749386

 

java中值类型和引用类型的不同实例(一)