在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
我们都知道,按值传递和引用传递是Java的两种方法参数传递方式。本文将针对按值传递和引用传递分别是什么,没有改变对象的值的原因等一系列问题,进行解答。

问题一:按值传递是什么?
参数类型是int,long等基本数据类型(八大基本数据类型),参数传递的过程采用值拷贝的方式。
代码片段:
public class Test {
public static void main(String[] args) {
int a = 5;
fun(a);
System.out.println(a);// 输出结果为5
}
private static void fun(int a) {
a += 1;
}
}
问题二:引用传递是什么?
参数类型为引用类型,参数传递的过程采用拷贝引用的方式。
代码片段:
public class Test {
public static void main(String[] args) {
A a = new A(5);
fun(a);
System.out.println(a.a);// 输出结果为6
}
private static void fun(A a) {
a.a += 1;
}
static class A {
public int a;
public A(int a) {
this.a = a;
}
}
}
问题三:明明是引用传递,为什么没有改变对象的值呢?
代码片段:
public class Test {
public static void main(String[] args) {
Integer a = 5;
fun(a);
System.out.println(a);// 输出结果为5
}
private static void fun(Integer a) {
a += 1;
}
}
因为这里其实使用了基本数据类型封装类的自动装箱功能。
Integer a = 5,编译后实际为Integer a = Integer.valueOf(5),查看Integer的源码,并没有改变原对象的值,只是将其引用指向了另一个对象。
以上就是关于Java参数传递方式问题的全部解答,还有大家都明白了吗?不明白的话可以就这些问题问一下博学谷的线上老师。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
零基础怎么学Java?小白学习Java的路线
如今,Java作为最流行的编程语言,吸引着越来越多的人学习。而这些初学者中不乏有零基础的小白,大家在学习的一开始,就难免面临这样的问题:零基础怎么学Java?为了解决大家的困扰,小编在这里从书籍,视频,项目和基础知识,来介绍小白学习Java的路线。
8307
2019-07-29 10:47:00
电脑编程入门自学Java指南
随着Java近些年来的强劲发展,想要转行学习Java的初学者也越来越多了。然而,入门自学Java并不是一件轻松的事情。众所周知,万事开头难,尤其是没有编程语言基础的学习者,不仅仅需要付出更多的心血和汗水,还需要科学地制定学习规划,下面小编为大家准备了一份电脑编程入门自学Java指南,内容包括了Java的学习内容和路径,赶紧来一起看看吧!
6910
2019-12-30 15:15:34
Java培训哪个机构比较好?教你如何识别
目前市面上有很多IT培训机构,大家要了解学校的学科培训方向,其次是教师的授课资历讲课经验,网上查询相关Java培训机构的信息重点是口碑如何。目前市场上有很多Java培训机构,培训时间和教学方法都大不相同,让很多同学难以选择,因此要有一套自己的辨别方法。
6478
2020-07-13 11:18:13
0基础学习Java要多久?入门难吗?
0基础学习Java要多久?入门难吗?学习Java一年的时间足够了,2个月JavaSE,半个月html+css+div,1个月数据库,servlet+jsp学1个月,然后SSH框架2个月。报名Java培训版系统学习大约五六个月左右,具体时间跟进自己学习情况而定。
6259
2020-07-15 11:01:55
零基础学Java可以学会吗?
现如今IT行业已经成为高薪行业的代表,人们对于编程技术也越来越关注,在几百门编程语言中,Java编程语言近十年一直是最受开发工作者以及用人单位所追捧的。但是相对于PHP、Python等编程语言,Java的学习难度相对较大,因此很多新入行的同学都会发出同样的疑问:零基础学Java可以学会吗?
5398
2020-07-16 18:00:54
