www.3112.net > JAVA基础问题,到底是值传递还是引用传递?

JAVA基础问题,到底是值传递还是引用传递?

急着有事,先占个位子,数组元素可以看成是一个对象类型的数据,其在内存的方式就是传址,而其本类型的则是传值.有空去看教科书.

值传,引用?忘了它吧,这也是很多人喜爱JAVA的地方之一.

首先要说明的是java中是没有指针的,java中只存在值传递,只存在值传递!!! 然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值.但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递.

JAVA中没有引用传递都是值传递 ,网上讲的好多都是错误的,希望发帖都以后思考后再发:在 Java 应用程序中永远不会传递对象,而只传递对象引用.因此是按引用传递对象.但重要的是要区分参数是如何传递的,这才是该节选的意图.

再回到你的数组上,你是改变数组的内容,而不是去创建新数组,你改变的数组和传入的数组是同一个对象,肯定也就改变了主函数里的数组了.当然如果说你只是改变传入的String的属性的话也是可以改变主函数的里的String的,不过string是个常量你改不了什么东西.

相信有些同学跟我一样,曾经对这个问题很疑惑.在网上也看了一些别人说的观点,评论不一.有说有值传递和引用传递两种,也有说只有值传递的,这里只说下个人见解 先看一个例子 public class Test1 { public static void main(String[] args) {

值传递:(形式参数zhidao类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值.引用传递:(形式参数类型是引用数回据类型参数):也称为传地址.方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的答操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数.

值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值.引用传递:(形式参数类型是引用数据类型参数):也称为传地址.方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数.

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com