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还没有变动,还没有造成影响。

归纳什么时候会变化,什么时候不会转变呢?

一个方法没法可以修改一个基本数据类型的参数(即数值型或布尔型)。

一个方法可以不决定一个对象参数的状态。一个方法没法让对象参数语句个新的对象。