本文目录一览:
JAVA中传递实参的方法,求举例解释?
引用传递传入的是一个地址. 这个地址指向一个类对象.
下面举个例子吧.
一家快递公司有两个快递员A和B. 在某个地方有一个C仓库, 里面有10个包裹.
现在领导分别叫A和B去C取3个包裹. A先取走了3个包裹. 当B后来去C的时候, C有多少个包裹呢? 是7个而不是10个. B再取走3个后, C就只有4个包裹了.
就是这个道理.
java方法参数怎么引用传递boolean
Java中的参数传递:分为值传递和引用传递
但本质上,Java中只有值传递。引用传递,其实可以理解为传的是类似指针的东西。
值传递就是把基本变量的值拷贝一份,传递这个拷贝。引用传递则是传递的引用的地址,也就是该变量在内存空间的地址。
1.值传递
只有基本数据类型采用值传递,特点是传递的是值的拷贝,传递完后两者就没有关系了。也就是说方法内和方法外的值互不相干
基本数据类型:
·整型:int,long,byte,short
浮点型:float,double
字符型:char
布尔型:boolean
注:8种基本数据类型以外的数据类型都为引用类型。
2.引用传递
指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。
传递的是一个拷贝,即副本。也就是说,对于一个参数传递,存在两个地址指向同一个内存空间。这里我们可以用内存分配示意图来体现
3.String类型传递
先说结论,String类型传递与基本数据类型的传递效果相似。
说明:
String类对象一旦创建,其内容不可更改:
String类的所有方法都不会改变String类对象内容,要改变String类对象的值就必须创建一个新的String对象。
也就是说,当进行参数传递时,如果方法内对String类对象的值进行了修改,那么实际上是创建了一个新的String类对象,然后让原来的变量指向它而已。但是这个“原来的变量”是一份拷贝副本,只是一开始创建的时候与主方法中的传递的值相同而已,现在改变之后,两者就毫无关系了。
java类方法如何实现引用传递和值传递
参数是基本类型就是传值,传对象就是引用传递。
swap(Integer x, Integer y)可以传递引用,但是没办法实现交换。这跟Integer的实现方式有关。所以不是引用传递就一定能改变外面的值。
下面是引用传递,交换的情况,又臭又长。
class Untitled {
int needFix;
public static void swap(Untitled x, Untitled y) {
int temp = x.needFix;
x.needFix = y.needFix;
y.needFix = temp;
}
public static void main(String[] args) {
Untitled u1 = new Untitled();
Untitled u2 = new Untitled();
u1.needFix = 3;
u2.needFix = 4;
swap(u1, u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考虑一下引用传递,不过也是一种传值,java里面没有事实上的指针。直接交换引用指向的对象是没有作用的。
Untitled temp = x;
x = y;
y = temp;
无效。
Java的参数传递是值传递还是引用传递
java中方法参数传递方式是按值传递。所谓值传递,就是将实际参数值的副本(复制品)传入方法内,而自己本身不会受到任何影响。
如果参数是基本类型,传递的是基本类型的字面量值的拷贝。
如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。