【Java基础】11、java方法中只有值传递,没有引用传递
2017-08-03 21:03
671 查看
publicclassExample{ StringtestString=newString("good"); char[]testCharArray={'a','b','c'}; publicstaticvoidmain(String[]args){ Exampleex=newExample(); ex.change(ex.testString,ex.testCharArray); System.out.println(ex.testString); System.out.println(ex.testCharArray); } publicvoidchange(StringtestString,char[]testCharArray){ testString="hhhhhh"; testCharArray[0]='w'; } }
这段代码最后输出的是什么?
考虑之后给出你的答案。
+Viewcode
good wbc
首先要明白的java的方法传递的究竟是什么?
对于基本类型,传递的是基本类型的值,而对于引用类型传递的是地址。
所以无论是什么,传递的都是值,因为你可以把地址理解成9x0000这种,也是一个值。
所以传递的都是值。
那么方法中什么时候会改变原来的值,什么时候不会呢?
1、只要是基本类型,传递的是值,这个值是复制了一份出来的,所以怎么都不会改变。
2、引用类型,传递的是地址,如果这个地址变了,那么原来的值肯定不变。
3、引用类型,传递的是地址,如果地址没变,而改变了地址对应的对象的属性,那么久会改变原来的值。
如果还听不明白,那么简单的说,只要在方法里面把传进来的对象重新赋值一个new的对象,那么原来是不变得。
如同方法中的string,重新赋值了一个字符串,这个时候地址以及改变了,所以原来那个不变。
而char数组,没有重新复制一个新的char数组,而是把char数组中的元素改变了,那就会改变原来的值。
对于内存的分析,下面这篇博客特别清楚,我就不多说了。
搞懂这个真的很重要。
友情链接:
相关文章推荐
- java方法中只有值传递,没有引用传递
- 为什么java方法中只有值传递,没有引用传递
- java方法中只有值传递,没有引用传递
- JAVA参数没有引用传递,只有值传递
- java中只有值传递,没有引用传递
- Java中只有值传递,没有引用传递
- Java语言中没有引用传递,只有值传递。到底对不对?
- java中只有值传递,没有引用传递
- Java中只有值传递,没有引用传递 !
- 贴的 java只有值传递,没有引用传递 有图 侵删
- Java实例说明 Java只有值传递 没有引用传递
- java中只有值传递,没有引用传递
- Java中只有值传递,没有引用传递
- JAVA中只有值传递,没有引用传递!
- Java中只有值传递,没有引用传递
- Java中没有引用传递只有值传递(在函数中)
- JAVA参数没有引用传递,只有值传递
- Java中只有按值传递,没有按引用传递!(两种参数情况下都是值传递)
- Java 只有值传递(Pass By Value),没有引用传递(Pass By Reference)
- Java中只有值传递,没有引用传递