在Java中,一切都是按值传递

  
在Java中,一切都是按值传递
问:你能提供一些权威报价支持说“在Java中,一切都是按值传递”?答:从Java编程语言,由詹姆斯?高斯林等。第3版(pg . 56):

:

<人力资源颜色=" # 0000 ff "/>
一些人会说错误的对象是通过“引用”。在编程语言设计中,通过引用这个词正确意味着当一个参数传递给一个函数,调用函数初始值的引用,不是一个变量值的副本。如果函数修改其参数,调用代码中的值将被改变,因为参数和参数在内存中使用相同的槽。Java编程语言不通过引用传递对象;按值传递对象引用。因为两份相同的实际参考引用同一个对象,通过更改/>

<你> Java教程

:

<人力资源颜色=" # 0000 ff "/>

<你>经过价值

Java方法,按值传递的参数。
调用时,该方法接收传入的变量的值。当
原始类型的论点是,按值传递意味着该方法不能改变其值。
当引用类型的论点是,按值传递意味着
方法不能改变对象引用,但是可以调用对象的方法
和修改变量的对象访问。

这通常是混乱的
来源——一个程序写的方法试图修改
/>

<你>价值测试问题从太阳:
在Java编程中,所有的方法按值传递的参数。
答:真正的
在Java中,一切都是按值传递的,除非你认为詹姆斯·高斯林忘记他是如何发明了Java,和太阳不知道Java是如何工作的。如果我们都同意这些不是案件。问题应该改变,如何理解“在Java中,一切都是按值传递”。如果你去上下一个小,你会在这里找到很多的帮助。

两个例子来证明:

例子;   arr[1]=班恕?//这里不会发生任何改变   交换(arr [0], arr [1]);   system . out。println (arr [0] +”、“+ arr [1]);//你好,你好//两个字符串实际上是交换   交换(arr 0 1);   system . out。println (arr [0] +”、“+ arr [1]);//嗨,你好   }//无用的交换方法,因为你交换副本//两个字符串的内部参考方法//字符串外不受影响。   公共静态空间交换(琴弦s1, s2) {   字符串tmp=零;      tmp=s1;   s1, s2;   s2=tmp;   }//真正的实际的交换//交换数组元素的两个指标//对于排序算法等。//引用的arr永远不会改变(按值传递)//但arr的内容将永久改变//自复制arr仍然引用同一个对象的引用。   公共静态空间交换(字符串arr []、int ix1 int ix2) {   字符串tmp=零;      tmp=arr [ix1];   arr [ix1]=arr [ix2];   加勒比海盗[ix2]=tmp;   }   }   

两个例子(代码):

公共类ParamTest {

/* *
* @param args
* @author Jianming
* @version 1.0
*/

公共静态void main (String [] args) {
/*
*测试alt="在Java中,一切都是按值传递">

结束。

[@more@]

在Java中,一切都是按值传递