在线客服
扫描二维码
下载博学谷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开发中进程和线程的区别是什么?进程是具有一定独立功能的程序关于某个数据集合上的一次 运行活动,进程是系统进行资源分配和调度的一个独立单位;线程自己基本上不拥有 系统资源,只拥有一点在运行中必不可少的资源。
9639
2019-06-04 10:40:05
Java语言核心语法和Java核心基础知识教程内容
Java语言核心语法和Java核心基础知识教程内容,Java基础精讲课程主要讲解:Java语言核心语法、面向对象程序设计、常用API、集合框架、IO流、多线程、网络编程、反射技术、常用设计模式、JDK新特性等JavaSE各个领域的知识,帮助学习者建立和夯实Java语言基础。
5743
2019-10-15 15:40:38
什么是Docker?Docker是如何工作的?
Docker作为一个开放源代码软件项目,其优势是体积小,运行速度快,因此掌握Docker技术是十分有必要的。想要搞清楚Docker的概念和工作原理,其实并不难,下面我们一起来简单聊聊Docker吧!
5341
2020-06-30 17:27:26
Java培训哪个机构比较好?教你如何识别
目前市面上有很多IT培训机构,大家要了解学校的学科培训方向,其次是教师的授课资历讲课经验,网上查询相关Java培训机构的信息重点是口碑如何。目前市场上有很多Java培训机构,培训时间和教学方法都大不相同,让很多同学难以选择,因此要有一套自己的辨别方法。
5255
2020-07-13 11:18:13
Java学完面向对象可以干什么?
面向对象是软件开发方法一种编程范式。面向对象是Java学习中的一个基础部分,学学面向对象逐步建立起面向对象编程思想,从会使用对象,到内存分析,再到理解为什么封装对象。想成为一名程序员只掌握面向对象的知识是远远不够的。
5445
2020-12-23 10:02:11
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
