关于Java的基本类型和引用类型的传值还是传引用问题,经过实例验证,通过以下极其简单的代码作个概括:
<ol><li><span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif; font-size: 14px;">class tempTest{</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">public static void main(String args []){</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">int a= 1;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255); font-size: 14px;"><span> </span>int b=a;</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px;">//虽然b做了修改,但是并不会更改a的数值,彼此独立;</span></li><li><span style="font-family:Arial, Helvetica, sans-serif;"><span style="font-size: 14px; white-space: normal;">
</span></span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">b=2;</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">System.out.println("a="+a+", b="+b);</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">int []aa=new int[]{1,2,3};</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255); font-size: 14px;"><span> </span>int []bb=aa;</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px;">//bb[] 所做的修改同样体现在aa[]上,引用</span></li><li><span style="font-family:Arial, Helvetica, sans-serif;"><span style="font-size: 14px; white-space: normal;">
</span></span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">System.out.println("aa[1]="+aa[1]+", bb[1]="+bb[1]);</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">bb[1]=4;</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">System.out.println("aa[1]="+aa[1]+", bb[1]="+bb[1]);</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">}</span></li><li><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">}</span></li></ol>
结果如下
a=1, b=2
aa[1]=2, bb[1]=2
aa[1]=4, bb[1]=4</span>