JAVA中的数值传递和引用引用

JAVA中的数值引用

java中的基础数据类型(byte,int,boolean,long,double,char,short)都为数值引用,在参数传递时只传递内存值,不会将内存地址进行传递。

JAVA中的引用传递

首先要明白什么是引用

Object a=new Object();

在对象a创建时,等号左边创建Object类的引用a,通过类名定位class文件,创建class对象,引用存放着a的class对象地址。当new Object()时,jvm在堆中为a对象分配足够的内存空间。对象名就是其引用。用来引用对象堆内存中的实例。

在java的封装类中,其对象实例都是引用传递,Object b=a,可将a引用传递给b,因为b对象没有new操作,自然也没有为其对象在堆中分配内存,只是加载了Object类。b和a代表同一内存中的对象实例。

但是在所有封装类中,string类不同,string的声明中都不需要new来声明。声明类型和基础数据类型相同,string内部实现就在内次类加载的时候就进行new操作,string中不存在引用传递,每次对string的修改都是new新的string对象,在进行赋值修改。

在非封装类中,数组属于引用传递,因为数组名称存储这数组的地址,所以与引用传递相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值