相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

结构是"价值传递"吗?

我最近试图为一个Vector2字段创建一个属性,只是意识到它不能按预期工作.

public Vector2 Position { get; set; }
Run Code Online (Sandbox Code Playgroud)

这阻止我改变其成员的价值(X&Y)

查看有关此内容的信息,我读到为Vector2struct 创建属性只返回原始对象的副本而不是引用.

作为Java开发人员,这让我很困惑.

C#中的对象何时按值传递,何时通过引用传递?
是否所有struct对象都按值传递?

c# struct pass-by-value

33
推荐指数
4
解决办法
2万
查看次数

Java是否通过引用传递?

Java真的支持通过引用传递吗?

如果没有,为什么我们有==运算符来查找具有相同引用的两个对象?

java pass-by-reference

10
推荐指数
3
解决办法
1万
查看次数

java中的对象引用

考虑这个简单的servlet示例:

protected void doGet(HttpServletRequest request, HttpServletResponse response){
    Cookie cookie = request.getCookie();
    // do weird stuff with cookie object
}
Run Code Online (Sandbox Code Playgroud)

我总是想知道..如果您修改对象cookie,是通过对象还是通过引用?

java object

4
推荐指数
1
解决办法
2万
查看次数

void foo(int&x) - > Ruby?通过引用传递整数?

作为一种为我的C++编程作业增添趣味的一种方式,我决定不再将书中的C++输入到我的计算机上,而是将其改为Ruby.是的,这有点傻,但我很无聊.

无论如何,我在将这种功能转换为Ruby时遇到了麻烦

void swap(int &a,int &b){
  int c=b;
  b=a;
  a=c
}
Run Code Online (Sandbox Code Playgroud)

函数中等效的ruby代码什么?

c++ ruby translation pass-by-reference

2
推荐指数
1
解决办法
2436
查看次数

使用Java中的方法的变量范围

在我遇到这段代码之前,我以为我理解了变量范围:

private static void someMethod(int i, Account a) {
  i++;
  a.deposit(5);
  a = new Account(80);
}

int score = 10;
Account account = new Account(100);
someMethod(score, account);
System.out.println(score); // prints 10
System.out.println(account.balance); // prints 105!!!
Run Code Online (Sandbox Code Playgroud)

编辑:我理解为什么a =新帐户(80)不会做任何事情,但我对a.deposit(5)实际工作感到困惑,因为a只是传入的原始帐户的副本...

java

1
推荐指数
1
解决办法
2588
查看次数

In java are the parameters passed by reference or by value

Possible Duplicate:
Is Java pass by reference?

In java are the parameters passed by reference or by value

java

0
推荐指数
3
解决办法
375
查看次数

java:按值传递或按引用传递

我有两个代码片段:

第一

class PassByTest{
    public static void main(String... args){
        PassByTest pbt=new PassByTest();
        int x=10;
        System.out.println("x= "+x);
        pbt.incr(x);//x is passed for increment
        System.out.println("x= "+x);//x is unaffected
    }
    public void incr(int x){
        x+=1;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,值x不受影响.

第二

import java.io.*;
class PassByteTest{
    public static void main(String...args) throws IOException{
        FileInputStream fis=new FileInputStream(args[0]);
        byte[] b=new byte[fis.available()];
        fis.read(b);//how all the content is available in this byte[]?

        for(int i=0;i<b.length;i++){
            System.out.print((char)b[i]+"");
            if(b[i]==32)
                System.out.println();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,文件的所有内容都可以在byte[] b.
怎么样,为什么?

java pass-by-reference pass-by-value

0
推荐指数
1
解决办法
5886
查看次数