Java中参数传递问题

Java中参数传递可以分为值传递和引用传递,话不多说直接撸代码

1.传原始类型(int,String等)数据是值传递

 package test_1;
public class Test {
public static void main(String[] args) {
String str = new String("abc");
change1(str);
System.out.println(str);
} private static void change1(String str1) {
str1 += "123";
System.out.println(str1);
}
}

结果:abc123
         abc

分析:最后输出的还是abc,说明在函数里面改变的值不是它本身

2.传对象是引用传递(包括数组)

 package test_1;
class Time {
public int hour;
public int minute;
public int second;
} public class ObjectParamTransfer {
Time time; public static void main(String[] args) {
ObjectParamTransfer opt = new ObjectParamTransfer();
opt.time = new Time();
opt.time.hour = 11;
opt.time.minute = 22;
opt.time.second = 33; opt.method(opt.time);
System.out.println("执行方法后的time的属性值");
System.out.println("hour=" + opt.time.hour);
System.out.println("minute=" + opt.time.minute);
System.out.println("second=" + opt.time.second); } private void method(Time t) { t.hour = 44;
t.minute = 55;
t.second = 60;
}
}

结果:执行方法后的time的属性值
hour=44
minute=55
second=60

分析:方法里面传进去的是对象的地址,那么在方法体中进行的操作就可以改变这个对象

总结:当要传递的参数是原始类型数据的时候是值传递,当要传递的参数是对象的时候是引用传递

第一篇博客,不足之处欢迎在评论区中指正,谢谢!

上一篇:linux 最近使用的命令


下一篇:MQTT的学习研究(十四) MQTT moquette 的 Callback API 消息发布订阅的实现