java参数是值传递还是引用传递 Java里什么是引用类型?
Java里什么是引用类型?Java的数据都差不多类型:一.数值型1.1整数类型(1byte,large,int,long)2.字符类型2.1char3.布尔类型3.1boolean为什么说java里面
Java里什么是引用类型?
Java的数据都差不多类型:
一.数值型
1.1整数类型(1byte,large,int,long)
2.字符类型
2.1char
3.布尔类型
3.1boolean
为什么说java里面只有值传递?
许多初学者应该有这个疑问,java是值传递肯定脚注传递?
先可以介绍疑问的出处,两派的观点。
小A说:java是值传递
小A说你看一看上面的代码,调用jia方法之前a是1,动态创建方法之后肯定1,值还没有变动。
小B说:java是摘录传递
小B说我看上面的代码,内部函数chang方法之前数组为{1},全局函数方法之后是{2},变动了值。
答案:java是值传达消息小B的观点是过于片面的,单纯的依据什么值的变化判断是不是我脚注传递是错误。
我们这个可以来去看看下面的代码:
若java是直接引用传递,这样的话数组a和b在同样之后,内容应该互相交换,可是结果仍然变。
为什么绝对不会变呢?
是因为java方法的参数传递是摘录拷入讯息传递。在调用swap方法,x变量拷备了a的脚注正指向1,y变量拷入了b的直接引用指向2(如图)。
2.在调用int[]txxyyt方法,x对准2,y打向1,ab对准没变(如图)。
3.当方法结束后,参数xy变量失去效果,参数变量a和b还没有变动,还没有造成影响。
归纳什么时候会变化,什么时候不会转变呢?
一个方法没法可以修改一个基本数据类型的参数(即数值型或布尔型)。
一个方法可以不决定一个对象参数的状态。一个方法没法让对象参数语句个新的对象。