在线客服
扫描二维码
下载博学谷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在线教育学习效果怎么样?有哪些优势?
随着网络技术的发展,IT培训早已不仅仅局限于线下教学了。然而,还是有不少小伙伴对在线教育方式,仍旧抱有怀疑态度。为了打消大家不必要的担忧,本篇文章以博学谷在线课程为例,带大家看看,Java在线教育学习效果怎么样?有哪些优势?
4778
2019-09-11 17:25:24
自学Java编程为什么难以成功,要怎样学呢?
相信不少自学Java失败的小伙伴都有这样的疑问:自学Java编程为什么难以成功,要怎样学呢?Java一直以来都是深受程序员喜爱的编程语言,当然它的难度也是不容小觑的。尤其是自学,最大的问题就是难以坚持。因此最好的解决方案就是报培训班。下面我们一起来看看自学Java会遇到的那些困难和报班学习的优势吧!
5484
2019-10-10 14:59:00
专业的在线Java视频学习网站哪家好
由于新型冠状肺炎推进了在线学习的进度,因此网上有很多的Java在线资源,对于零基础小白可以找到很多免费是Java视频,但是这些知识点比较零散不成体系。Java是一种面向对象的编程语言,拥有独立、多线程、安全、动态和健壮的特点。归功于其多功能的特点,Java是流行的编程语言之一,可以开发出多种的应用程序。
5146
2020-06-11 10:27:28
Java培训靠谱吗?参加培训有必要吗?
比较靠谱的Java培训机构课程内容会经常更新,在挑选培训机构时可以拿培训机构的课程大纲和企业用人需求对比下,如果课程内容能和企业需求想匹配,那么这家Java培训机构是比较靠谱的。
4237
2020-06-15 15:34:51
什么是Java运算?Java运算:比九九乘法表还简单
提到运算,你可能会立即想到加、减、乘、除四则运算以及“九九乘法表”。Java 语言中有很多进行数据运算的方式,比如:算术运算、比较运算、逻辑运算、赋值运算、三目运算等。每一种运算方式,又都包含了很多的运算符,小编把这些运算符形象的称为“十八般武艺”,学习 Java 中的运算,就是学习这些运算符的使用,也就是修炼这“十八般武艺”的过程。
3639
2021-07-15 15:16:23