我的第一篇博客,谈谈java的值传递
来源:互联网 发布:ubuntu删除文件命令 编辑:程序博客网 时间:2024/05/16 14:07
我的第一篇博客,还是个小菜鸟,欢迎老鸟们指教。
虽然工作两年了,但是每天忙忙碌碌,碌碌无为。于是是时候梳理一下了,java的一些基本知识自己还不是很理解,这两天在看相关方面的文章。今天又学到一一点东西,特地写下来,分享给自己,也分享给和我一样不知道的小鸟们。
那么咱们就来谈谈java的方法传参是引用传递,还是值传递?我以前的回答必须是引用传递,因为我就这么干过:
public static void swapObj(User user){ //通过一些列方法获得user的其他信息,然后set给传进来的user user.setId(123); user.setUserAge("18"); }public static void main(String[] args) { User user = new User(); user.setUserName("小郭"); swapObj(user); System.out.println(user.getUserName()); System.out.println(user.getUserAge()); System.out.println(user.getId());}
输出结果:
小郭
18
132
我就是根据这个认为引用传递的,但是我发现我错了因为又有一段代码:
public static void swapInt(int b){ b=5; }public static void main(String[] args) {int a =6;swapInt(a);System.out.println(a);}
输出结果:
6
于是我就纠结的,这明显传递的不是引用啊,传递的是值啊。经过看了几篇文章,觉得应该这么理解,它是值传递,基本类型的话传递值,引用的话传递引用的值,也就是说这个引用被传进里面了,但是引用不会被改变,写个代码来验证一下:
public static void swapObj(User user) { User user2 = new User(); user2.setUserName("小李"); user = user2;}public static void main(String[] args) { User user = new User(); user.setUserName("小郭"); swapObj(user); System.out.println(user.getUserName());}
输出结果:小郭
这个结果证明了我的推论,即在调用方法的时候将引用值传递到了方法里面,然而,这个引用的值改变对于方法外面是没有影响的。
0 0
- 我的第一篇博客,谈谈java的值传递
- 我的第一篇博客
- 我的博客 第一篇
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- 我的第一篇博客
- (java)leetcode Longest Common Prefix
- 2015多校第七场总结
- IOS9.0-Swift 引导页面实现
- UIScrollView和UIPageControl 实现让图片无限循环播放和左右滑动
- HackGame
- 我的第一篇博客,谈谈java的值传递
- 广播监听
- 把txt文件转换为tsv文件的python脚本
- POJ 3468 A Simple Problem with Integers(线段树 or 树状数组—区间求和,成段更新)
- Tsinsen 题目A1393. Palisection(回文树)
- KVC在定义Model类中的使用
- [NOIP 2013]火柴排队 逆序对
- 浅谈构造函数与析构函数的调用顺序
- 通过代码区分是否为推送启动应用