当前位置: 首页 > news >正文

网站关闭模板住房和建设厅网站

网站关闭模板,住房和建设厅网站,网站免费建设推荐,河南省建设厅网站无事故证明🎉 前言 之前一直以为Java传对象是引用传递,直到最近用Java写数据结构链表时遇到一些问题,这才让我重新思考这个问题,经过我的一番研究,发现不能一棒子打死,其实这其中既有值传递,又有引用传递…

🎉 前言

之前一直以为Java传对象是引用传递,直到最近用Java写数据结构链表时遇到一些问题,这才让我重新思考这个问题,经过我的一番研究,发现不能一棒子打死,其实这其中既有值传递,又有引用传递,让我们往下看。

🎉 引用传递的情况

之前一直认为是引用传递,是因为我的使用场景大多数是修改对象的属性,就像下面这段代码:

class LinkNode{int val;LinkNode next;LinkNode(){}LinkNode(int val,LinkNode next){this.val = val;this.next = next;}
}class Main{public static void main(String[] args) {LinkNode L = new LinkNode(666,null);System.out.println("传参之前,L.val="+L.val);Fun(L);System.out.println("传参之后,L.val="+L.val);}static void Fun(LinkNode L){L.val = 999;}
}

在这里插入图片描述
像这样在一个函数的参数列表中传入一个对象,并且在函数内部修改传入对象的属性,会发现在函数外部的对象属性也发生了变化,这就是典型的引用传递。

🎉 值传递的情况

class LinkNode{int val;LinkNode next;LinkNode(){}LinkNode(int val,LinkNode next){this.val = val;this.next = next;}
}class Main{public static void main(String[] args) {LinkNode L = new LinkNode(666,null);System.out.println("传参之前,L.val="+L.val);Fun(L);System.out.println("传参之后,L.val="+L.val);/* 新增代码 */Fun2(L);System.out.println("传参之后,L.val="+L.val);}static void Fun(LinkNode L){L.val = 999;}/* 新增代码 */static void Fun2(LinkNode L){LinkNode l = new LinkNode(111,null);L = l;}
}

这段代码在原先代码的基础上,增添了Fun2()函数,代码中也注释了新增的部分,此时如果我们沿用之前的观点,认为传对象是引用传递,那么在 Fun2(L) 函数内部,L = l;这条语句将对象L的引用更改了,那么在函数外部的L的引用应该也要更改,那么此时打印 L.val应该是111才对,但是实际运行结果如图:
在这里插入图片描述
可见引用的修改只在函数内部成立,在外部不成立,要想修改函数外部L的引用,必须在函数内部手动返回L,并将其赋值给函数外的L,着不就是妥妥的值传递吗?

🎉 解释

先说结论,传对象就是“值传递”。

其实要解释“引用传递“的假象也很简单,我们传入对象实际上传的是对象的引用的副本,也就是值传递,但是这个副本和原对象指向的同一个内存空间,因此,借助副本修改对象的属性和使用原对象修改对象的属性是完全等效的,因为操作的是同一个内存空间。

但是如果我们在函数内部直接对对象的副本进行赋值,就不会影响原对象,因为二者的内存空间不是同一个。

由此可见,对象虽然是引用数据类型,但是传入函数中依然是值传递,因此我们要明确在函数内部操作的内存空间和函数外对应的内存空间是不是一致的,只有一致的情况下,在函数内的修改才会影响函数外,否则不影响。

http://www.sczhlp.com/news/111632/

相关文章:

  • 网站域名查询wordpress数据库查询
  • 为您服务网站专门做机器人的网站
  • 天涯网站建设路小学专业企业网站建设定制
  • 曲周网站建设公司网页需要哪些内容
  • 网站备案的规定wordpress后台管理界面美化
  • 做网站总费用wordpress 博客地址
  • 建站工具有哪些社区现在1做啥网站流量大
  • wordpress下载站源码淘宝评价采集wordpress
  • 统计网站访问量白帽seo是什么职业
  • 工图网上海seo公司推荐
  • 做网站交接什么时需要交接天津建设网安全员成绩查询
  • 学校网站建设电话重庆网站制作工作室
  • 做外贸一般上什么网站网站标题长度
  • 用ps做网站首页电子商务网站建设评估的指标
  • 网站开发费用会计分录偃师网站建设
  • 免费建设网站的方法wap网站预览
  • 自己做网站项目wordpress 旧版本下载
  • 网站建设动态代码wordpress主题zhixina
  • 公司微网站制作怎么在百度自己创网站
  • 给几个能看的网站 贴吧手机商城下载
  • 根据网站软件做报告最新网站发布
  • 给个龙做罗拉的网站成品免费观看网站
  • 百度官方网seo优化排名易下拉软件
  • 网站托管外包wordpress 编辑器 国外
  • 容桂网站开发完整的网站后台权限编码
  • 深圳seo技术seo网站推广怎样
  • 骏域网站白山市住房和建设局网站
  • 网站后台做1个多少钱网站设置搜索框是什么知识点
  • 商城网站源码大全郴州旅游攻略
  • 建购物网站需要多少钱网站首页模板怎么做策划