赞同楼主的观点,是引用传递。java中原始类型是值传递,复杂类型是引用传递。坐等大神更详细的解答

解决方案 »

  1.   

    在网上看到了一个观点就是:java中只有值传递 他们认为对象引用也是一个值,那我就不明白那真正的引用是什么了
      

  2.   

    你的主贴中的理解是对的。int 那个是值传递。 
      

  3.   


    我记得Java编程思想中是Java都是值传递;
    说Java是值传递没错;
    说Java既有值传递,也有引用传递,也有一定的道理,因为这个引用传递也属于按值传递,只不过这个”值“是个地址;
    看一下这篇文章,你应该会懂的;
    http://blog.csdn.net/jiangnan2014/article/details/22944075
      

  4.   

    java中的基本数据类型,是被存放在所谓的栈中。而其他的则是存放在堆中,在栈中有个值指向堆中的数据,
    我们在操作时是操作的栈中的数据,基本类型就还是以前的值,而其他对象则只是引用,这个引用自然也是值了
      

  5.   

    嗯,你帖子中分析的有道理,但是仅从Java的角度来讲,Java中只有值传递,基本类型传的是值本身。复杂,对象类型传递的是指向堆内存中的引用,传递的是引用的地址,也是实际的值。如果硬是叫它为引用也没有错。当你改变传入的引用对象的值时,其实改变的是指向的堆内存的内容。其实传递过来的引用值,是没有变化的,我们之所以看到变化了,是因为程序通过传进来的引用值,去改变了对应的堆内存中的对象内容,当返回原来的引用值时,还是指向原来的堆内存内容,但是此时内容已经改变了。
      

  6.   

    Java都是值传递,分两种:传递常量值(8种基本数据类型和字符串) ,传递引用值(对象)
      

  7.   

    String传得是指针。。可以用这个指针发射修改String值。
      

  8.   

    String传得是指针。。可以用这个指针发射修改String值。指针是C++里的,Java里用引用代替指针。我和楼主的观点一样:传引用方式。
      

  9.   

    String传得是指针。。可以用这个指针发射修改String值。指针是C++里的,Java里用引用代替指针。我和楼主的观点一样:传引用方式。在Java中的引用类型,是指除了基本的变量类型之外的所有类型,所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失), 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在stack中,一块在heap中)
    引用是引用 指针是指针,java的引用 等同 C的指针 ,若仅仅是考虑java引用 而不用指针这个 词 ,引用定义就要变了,1. 引用是一种数据类型,保存了对象在内存中的地址,这种类型即不是我们平时所说的简单数据类型也不是类实例(对象);2. 不同的引用可能指向同一个对象,换句话说,一个对象可以有多个引用,即该类类型的变量。而这两条特征 在C里完全是指针具备而引用不具备的。
      

  10.   

    感觉java的8大基本类型是值传递,其他的都是引用传递
      

  11.   

    int a = 0;
    change( int    a ){
         a = 4;
    }
    a的值不会改变int[] a = [0];
    change( int[]    a ){
         a[0] = 4;
    }
    a[0]的值会改变