数据类型,值传递和引用传递有什么区别,String是什么传递
1个回答
展开全部
你学过C或者C++吗?这两个概念是从C/C++延续过来的,就类似于C里面的值传递和指针传递。在java中除了基本类型(Integer/Float/Double等)和String类的对象外,所有的类对象引用都是引用传递,也就是传递的对象地址。
所谓值传递就是传递的值的拷贝,而不是原来的值,比如
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = add(a, b);
System.out.println("a = " + a + ", b = " + b + ", c = " + c);
}
private static int add(int a, int b) {
a = 20;
b = 30;
return a + b;
}
输出:a = 10, b = 20, c = 50
这就是所谓值传递,在被调方法中改变参数值不会影响主调方法中定义的变量的值
如果你将a、b定义为Student类的对象,然后在add方法中改变参数里面的值,那么主调方法main中的a、b变量将跟着发生改变,就是所谓引用传递
所谓值传递就是传递的值的拷贝,而不是原来的值,比如
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = add(a, b);
System.out.println("a = " + a + ", b = " + b + ", c = " + c);
}
private static int add(int a, int b) {
a = 20;
b = 30;
return a + b;
}
输出:a = 10, b = 20, c = 50
这就是所谓值传递,在被调方法中改变参数值不会影响主调方法中定义的变量的值
如果你将a、b定义为Student类的对象,然后在add方法中改变参数里面的值,那么主调方法main中的a、b变量将跟着发生改变,就是所谓引用传递
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询