大家来讨论下java中的值传递和引用传递~ 赞同楼主的观点,是引用传递。java中原始类型是值传递,复杂类型是引用传递。坐等大神更详细的解答 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在网上看到了一个观点就是:java中只有值传递 他们认为对象引用也是一个值,那我就不明白那真正的引用是什么了 你的主贴中的理解是对的。int 那个是值传递。 我记得Java编程思想中是Java都是值传递;说Java是值传递没错;说Java既有值传递,也有引用传递,也有一定的道理,因为这个引用传递也属于按值传递,只不过这个”值“是个地址;看一下这篇文章,你应该会懂的;http://blog.csdn.net/jiangnan2014/article/details/22944075 java中的基本数据类型,是被存放在所谓的栈中。而其他的则是存放在堆中,在栈中有个值指向堆中的数据,我们在操作时是操作的栈中的数据,基本类型就还是以前的值,而其他对象则只是引用,这个引用自然也是值了 嗯,你帖子中分析的有道理,但是仅从Java的角度来讲,Java中只有值传递,基本类型传的是值本身。复杂,对象类型传递的是指向堆内存中的引用,传递的是引用的地址,也是实际的值。如果硬是叫它为引用也没有错。当你改变传入的引用对象的值时,其实改变的是指向的堆内存的内容。其实传递过来的引用值,是没有变化的,我们之所以看到变化了,是因为程序通过传进来的引用值,去改变了对应的堆内存中的对象内容,当返回原来的引用值时,还是指向原来的堆内存内容,但是此时内容已经改变了。 Java都是值传递,分两种:传递常量值(8种基本数据类型和字符串) ,传递引用值(对象) String传得是指针。。可以用这个指针发射修改String值。 String传得是指针。。可以用这个指针发射修改String值。指针是C++里的,Java里用引用代替指针。我和楼主的观点一样:传引用方式。 String传得是指针。。可以用这个指针发射修改String值。指针是C++里的,Java里用引用代替指针。我和楼主的观点一样:传引用方式。在Java中的引用类型,是指除了基本的变量类型之外的所有类型,所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失), 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在stack中,一块在heap中)引用是引用 指针是指针,java的引用 等同 C的指针 ,若仅仅是考虑java引用 而不用指针这个 词 ,引用定义就要变了,1. 引用是一种数据类型,保存了对象在内存中的地址,这种类型即不是我们平时所说的简单数据类型也不是类实例(对象);2. 不同的引用可能指向同一个对象,换句话说,一个对象可以有多个引用,即该类类型的变量。而这两条特征 在C里完全是指针具备而引用不具备的。 感觉java的8大基本类型是值传递,其他的都是引用传递 int a = 0;change( int a ){ a = 4;}a的值不会改变int[] a = [0];change( int[] a ){ a[0] = 4;}a[0]的值会改变 怎么把一个网页的Html源码贴在文本框中 大家对中间件怎么理解? 坐等回答。。。文件读取后输出的问题 判断一个字符串中含有中文字符 对于这个程序我有一个问题,能不能帮忙解决? 求平均成绩 中文显示问题求教,急!!! 急急急!! 请教:如何在Java中直接控制串口Com口 jBuilder8生成exe文件的问题 怎么从网络上取得对方文件夹的全部文件名? java中如何设置不规则的按钮? 求解 关于 初学者 出现空指针问题
我记得Java编程思想中是Java都是值传递;
说Java是值传递没错;
说Java既有值传递,也有引用传递,也有一定的道理,因为这个引用传递也属于按值传递,只不过这个”值“是个地址;
看一下这篇文章,你应该会懂的;
http://blog.csdn.net/jiangnan2014/article/details/22944075
我们在操作时是操作的栈中的数据,基本类型就还是以前的值,而其他对象则只是引用,这个引用自然也是值了
引用是引用 指针是指针,java的引用 等同 C的指针 ,若仅仅是考虑java引用 而不用指针这个 词 ,引用定义就要变了,1. 引用是一种数据类型,保存了对象在内存中的地址,这种类型即不是我们平时所说的简单数据类型也不是类实例(对象);2. 不同的引用可能指向同一个对象,换句话说,一个对象可以有多个引用,即该类类型的变量。而这两条特征 在C里完全是指针具备而引用不具备的。
change( int a ){
a = 4;
}
a的值不会改变int[] a = [0];
change( int[] a ){
a[0] = 4;
}
a[0]的值会改变