java 传址

在java中,都是值传递,没有址传递。
要想做到址传递:
对象传递为传址,基本类型为传值。
引用传递,是通过改变对象的属性,才能改变参数。

Java中只有传值调用,没有传址调用。所以在java方法中改变参数的值是行不通的。但是可以改变引用变量的属性值。
可以仔细理解一下下面几句话:

  • 对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。
  • 对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。
  • 方法体内对参数进行运算,不影响原有变量的值。
  • 方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。
    也就是说,对于基本数据类型,实现的是传值,只是个形参,不会改变原有值。对于引用数据类型,对这个引用进行操作,其实也是相当于对形参的操作,不会改变原来的引用。但是,当对这个引用的属性进行操作的时候,相当于CPP中的传址调用,可以改变这个引用的属性的值。

注意:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
Integer比较特殊,在数字为-128到127之间,会进行缓存。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,341评论 19赞 139
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,789评论 1赞 51
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,820评论 0赞 4
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 43,076评论 11赞 349
  • 写在前面的话 这是QQ空间里的一篇旧作,写于2015.03.12,因为实在需要一个开端,所以搬运到简书来了,聊以充...
    Yishan_said阅读 252评论 0赞 3

友情链接更多精彩内容