值类型和引用类型

来源:互联网 发布:手机qq变音软件 编辑:程序博客网 时间:2024/05/16 06:29

 值类型:所有基本数据类型都为值类型,当声明一个int变量时编译器将生成代码来分配一足以容纳一个整数的    一个内存块

类类型:采取不同的方式进行处理,声明一个Circle变量时,编译器不会生成代码来分配足以容纳的内存块,相反它唯一做的事就是分配一小片内存,其中刚好可以容纳包含Circle 的另一个内存块地址(或者对那个内存块的一个引用)Cricle对象实际占有内存是在使用new关键字来创建对象时分配的,

据此,可以这样理解值类型它直接容纳着值,引用类型(比如类)容纳的是对内存块的引用

值类型:

int i=42;//声明并初始化i

int copyi=i;//copyi包含i中的数据的一个副本

i++;//i递增不会影响copyi

类类型:

Circle c  = new Circle(42)

Circle refc=c;

如果refc初始化为c,那么refc引用的Cirlce对象就是c引用的那个Circle对象;在这种情况下只存一个Circle对象,refec和c引用的都是它。

值类型的引用是一个副本,

引用类型的引用不是副本

原创粉丝点击