java 只能在容器类的变量实现引用传参,对于int这类变量,做不到引用传参,很不方便。我写c++的时候,喜欢这么写 func( int &a, int &b, int &c){
}通过这种方式我可以一起修改很多变量,很方便。
现在用java来写,就觉得很不顺,必须构造一个容器来实现引用传递,
消耗更多内存不说,还不好看。另外在C环境下,我很清楚heap和stack的区别,
在java,我感觉只有int这种简单变量才在stack存在,我觉得可能效率没有那么好。

解决方案 »

  1.   

    java中的class大多数是通过引用,可以用类对象传递实现
      

  2.   


    Integer和string这些都不能做引用传递的
      

  3.   

    java只有值传递,这是没啥好说的。
    关键是你习惯性的用java写c的代码。那当然会别扭了。思维方式,在java中是需要反复重构的!
      

  4.   

    java是完全面向对象的,而且为了安全取消指针对内存的直接操作,所以基本类型要实现参数的in/out,就要封装为类属性而操作。
    C自由灵活,java相对严谨一些。论效率,java是比不上C的,java的强项在于所谓的跨平台
    慢慢习惯吧
      

  5.   

    如果出现你说的情况基本可以断定你的程序没设计好
    用c++的思维来考虑java是不合适的需要锻炼
      

  6.   

    那你用c++就好了,干嘛用java呢?!自找苦吃?自找麻烦?自找没趣?是不是你在中国生活久了,去美国,然后见美国人都说英语,就说美国一点也不好,都不说汉语?java若跟c++一样,还要java作甚?!美国若跟中国一样,还存在美国么!
      

  7.   

    new一个Integer对象传进去,楼主虽然说这样你感觉不方便了,但是这样的设计也会有其他的用处,否则java的设计人员就不这样设计了
      

  8.   

    哈哈,c++er在这里挨骂啊,java好啊,c++的东西就在c++里面用呗
      

  9.   

    java是完全面向对象的,而且为了安全取消指针对内存的直接操作,所以基本类型要实现参数的in/out,就要封装为类属性而操作。
    C自由灵活,java相对严谨一些。论效率,java是比不上C的,java的强项在于所谓的跨平台
    慢慢习惯吧