1. java引用数据类型的传递
引用数据类型就是以对象的形式存在于计算机栈内存中,在堆内存中保存着一个地址引用,这个引用地址指向了这个对象。我们通过操作这个地址引用,就能获取到这个对象,并对其进行操作。类似于c中的指针。
你具体想问的什么问题呢
基本类型八种:
byte、short、int、long、float、double、boolean、char,
除了这八种,都是引用类型,包括string
2. Java中怎么引用传递
//Java中怎么引用传来递,在main中的代源码
public static void main(String[] args) {
Ldc l = new Ldc("你好");//这里的值可以改
System.out.println(l.str);
}
//----------------------------------------------------------------------------------------------------
//新建一个Ldc类代码如果
public class Ldc {
public String str ="";
Ldc(String str){
this.str="我在这里返回你传递来的参数:"+str;
}
}
3. JAVA中的传递都是值传递吗有没有引用传递呢
都是值调用,没有引用调用。
例如:
首先,编写一个调用俩对象的方法:
public static void swap(E x,E y){
E temp = y;
y=x;
x=temp;
}
则调用该方法swap(a,b),swap方法的参数x和y两个对象的引用的拷贝,最终这个方法交互的是这两个拷贝。最终方法结束后,参数变量x和y被丢弃了。原来的变量a和b仍然引用这个方法调用之前所引用的对象。这个过程说明:java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递
4. java类方法如何实现引用传递和值传递
参数是基本类型就是传值,传对象就是引用传递。
swap(Integer x, Integer y)可以传递引用,但是没办法实现交换。这跟Integer的实现方式有关。所以不是引用传递就一定能改变外面的值。
下面是引用传递,交换的情况,又臭又长。
classUntitled{
intneedFix;
publicstaticvoidswap(Untitledx,Untitledy){
inttemp=x.needFix;
x.needFix=y.needFix;
y.needFix=temp;
}
publicstaticvoidmain(String[]args){
Untitle1=newUntitled();
Untitle2=newUntitled();
u1.needFix=3;
u2.needFix=4;
swap(u1,u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考虑一下引用传递,不过也是一种传值,java里面没有事实上的指针。直接交换引用指向的对象是没有作用的。
Untitledtemp=x;
x=y;
y=temp;
无效。
5. Java中参数传递有没有引用传递
Java只有一种参数传递方式:值传递!
真正的引用传递(pass by reference)是指当引元传递给函数时,被调用的函数获得的是对原值的引用,而非原值的副本。如果函数修改了参数值,那么调用代码中的值也会改变,那是因为引元和参数使用了内存中的同一块地址。
1楼说的数组,传递的是数组的引用的拷贝,而不是数组的引用。
其他几位所说的“引用传递”实际上是指“传递了引用的拷贝”,所以归根结底还是“值传递”。
6. java中的引用传递是什么
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。