Java中参数传递问题

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

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

复制代码
 1 package test_1;
 2 public class Test {
 3     public static void main(String[] args) {
 4         String str = new String("abc");
 5         change1(str);
 6         System.out.println(str);
 7     }
 8     
 9     private static void change1(String str1) {
10         str1 += "123";
11         System.out.println(str1);
12     }
13 }
复制代码

结果:abc123
         abc

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

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

复制代码
 1 package test_1;
 2 class Time {
 3     public int hour;
 4     public int minute;
 5     public int second;
 6 }
 7 
 8 public class ObjectParamTransfer {
 9     Time time;
10 
11     public static void main(String[] args) {
12         ObjectParamTransfer opt = new ObjectParamTransfer();
13         opt.time = new Time();
14         opt.time.hour = 11;
15         opt.time.minute = 22;
16         opt.time.second = 33;
17 
18         opt.method(opt.time);
19         System.out.println("执行方法后的time的属性值");
20         System.out.println("hour=" + opt.time.hour);
21         System.out.println("minute=" + opt.time.minute);
22         System.out.println("second=" + opt.time.second);
23 
24     }
25 
26     private void method(Time t) {
27      
28         t.hour = 44;
29         t.minute = 55;
30         t.second = 60;
31     }
32 }
复制代码

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

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

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

 

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

                                                                                                                 

posted @   西*风  阅读(409)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示