java 是传值还是传值呢,这个问题已经要被讨论烂了.在我的认识中也是几经反复,结果都没有认识到本质.
有些人说是传值的,有些人说要看情况,有些情况是传值,有些情况是传址
java 实际只是传值的,为什么我们会对它的认识有误区呢,来看个例子吧.
结果很显然是1,那么这里就证明了java实际上是传值的,它在调用函数的时候传入的参数实际上是原数的拷贝,对拷贝进行了修改是不影响原值的
那么为什么会认为它有时候是传址的呢,在于参数是一个对象的时候
这里我传入的是一个对象.通过调用函数把对象里面的值改变了.结果是changed, 为什么会这样呢,照理说如果它是传值的话结果应该是int才对阿,因为它传的是个对象的拷贝阿.
这里的确是传的值,只是这个值是value对象地址的拷贝.所以现在我对它做改变原先的对象是会改变的.
可能这里你还是觉得它是传址,那么我现在就来证明他为什么不是传址,passvalue方法改成这样:
现在执行的结果是int了.所以你现在应该明白传的是对象地址的拷贝这句话的含义了,因为它如果不是拷贝而就是传的地址的话,那么我新new了一个value对象,并对参数进行赋值,(v=value) 那么这个时候两个对象的地址就该一样,我对新的value进行修改,也会对原来的value对象产生影响.但是现在并没有.
所以在java中最好不要对参数进行赋值,无论是对象还是基本类型,因为这时没有意义的,只会把程序搞的更加的不可读
分享到:
相关推荐
Java是传值还是传址引用
Java页面form表单值的简单获取方法
Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE...
java传值所用的基本方法与java传值时是传引用还是传值
lotus domnio java代理传值
lotus domino BS开发 java通过url传值
jsurl传值java页面url传值中文编码&解码共2页.pdf.zip
Java中参数传值的代码清单.pdf 学习资料 复习资料 教学资源
flex+java交互 后台传参 前台操作
java中传值与传引用,详细讲解java中的传值与传引用
主要介绍了java中的传值与传引用实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本人测试总结demo,包括相互基本数据类型 和字符串类型,对象的传递,了解更多内容请关注(https://github.com/wangpengfei1992/NdkBaseDataTransfer)
NULL 博文链接:https://wuaner.iteye.com/blog/455481
传值和传引用的问题一直是Java里争论的话题。与C++不同的,Java里面没有指针的概念,Java的设 计者巧妙的对指针的操作进行了管理。事实上,在懂C++的Java程序员眼中,Java到处都是精美绝伦的指 针。
跨页面传值的五种基本方法,跨页面传值的五种基本方法,
java及C++中传值传递、引用传递和指针方式的理解.docx
java传参问题,通过对原始类型的传参和对应用类型的传参分析java的传值问题
传址调用 传址调用 传址调用 传址调用传址调用 传址调用 传址调用 传址调用
Java 是传值还是传引用,问题主要出在对象的传递上,因为 Java 中简单类型没有引用。既然争论中提到了引用这个东西,为了搞清楚这个问题,我们必须要知道引用是什么。 简单的说,引用其实就像是一个对象的名字...