没有合适的资源?快使用搜索试试~ 我知道了~
23.Java对象作为参数传递是传值还是传引用1
需积分: 0 0 下载量 94 浏览量
2022-08-03
13:48:14
上传
评论
收藏 326KB PDF 举报
温馨提示
试读
3页
前言在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参本,函数对形参的操作并不
资源详情
资源评论
资源推荐
首页 博客 学院 下载 论坛 问答 活动 专题 招聘 APP VIP会员
Python工程师
关于Java对象作为参数传递是传值还是传引用的问题
原创
Alan_Xiang 阅读数 14135 收藏
分类专栏: Java基础
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiangwanpeng/article/details/52454479
最后发布于2016-09-06 22:37:20
前言
在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参
本,函数对形参的操作并不会对实参产生影响;若传的是引用,那么此时对形参的操作则会影响到实参。
首先我们来看一句代码:
这句话的意思是:创建一个Object对象,再创建一个名为obj的引用,让这个引用指向这个对象,如下图所示:
在有了上面的基础之后,我们便来看下面这组在网上很流行的例子:
基本数据类型作为参数传递:
例1:
这个例子不难理解,当基本数据类型作为参数传递时,传递的是实参值的副本,即传的是值,无论在函数中怎么操作这个副本,实参的值是不会被
以上代码执行的结果是:
before change, i = 1
after change, i = 1
对象作为参数传递:
在下面的例2中,我们把StringBuffer对象作为参数传递到change函数。
例2:
Object obj = new Object();
1
public class test {
public static void main(String[] args) {
int i = 1;
System.out.println("before change, i = "+i);
change(i);
System.out.println("after change, i = "+i);
}
public static void change(int i){
i = 5;
}
}
1
2
3
4
5
6
7
8
9
10
11
举报
28
12
萌新小白爱学习
- 粉丝: 15
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0