在线客服
扫描二维码
下载博学谷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培训学习平台为博学谷,授课老师是黑马程序员线下的老师,讲师都拥有丰富的教学经验,老师多为项目总监、架构师出身,具备专业及丰富的Java技术经验,Java培训课程是根据行业技术水平发展研发符合企业需求的前沿技术内容。
5950
2019-09-24 10:37:54
Java基础学习之File类笔记整理
在小白入门Java基础的学习道路上,File类是必须要接触的一个知识点。为了方便大家学习并应用File类,本文为大家整理汇总了File类的相关知识点,内容包括File类概述和构造方法、File类创建功能、File类判断和获取功能和File类删除功能。下面我们一起来梳理一遍笔记的内容吧!
5099
2019-12-11 16:25:25
2019年Spring Boot面试题集合附答案
相信所有Java开发者都认同,在微服务中,Spring Boot是最好的Java框架。Spring Boot自身最大的优势就是简化配置,可以说它真正实现了自动化配置。因此大家要想做好Java开发,给大家的建议就是成为Spring Boot的高手。本文为大家整理了2019年最新的Spring Boot面试题和答案,如果大家能够好好做一做这份面试题集合,相信面试一定手到擒来。
6817
2019-12-20 18:05:36
怎样从0开始学好Java开发?
许多想要从事IT技术工作的朋友,在一开始都会把Java作为入门编程的首选语言。的确,Java作为久盛不衰的流行语言,一直一以来都备受程序开发者的青睐。那么,怎样从0开始学好Java开发呢?这里本文将推荐给大家免费的零基础入门Java开发的在线课程,一起来看看相关课程的介绍吧!
4932
2020-07-15 17:10:31
自学Java应该注意避免哪些误区?
众做周知,Java是编程语言中的王者,它在服务器编程语言占比超过91%,其就业岗位覆盖各个经济领域,毫不夸张地说,中国IT行业的未来发展离不开Java语言。因而Java受到了众多编程开发者的喜爱,Java学习人群也在日益壮大。为了帮助大家可以更高效地学习Java,本文总结了自学Java应该注意的误区,希望大家都能够避免走这些弯路。
4952
2020-07-21 18:04:52