了解JAVA中的值(对象)传递

时间:2017-10-02 13:48:36

标签: java pass-by-value

我使用this post作为我的指导。

我想知道我是否理解了java中传递值的以下概念。

我有一个java对象,我将它传递给一个调用类构造函数的函数(所以在这种情况下,对象的地址,我猜在这种情况下)。我的主对象的地址被“复制”到构造函数对象。现在这个构造的对象和我的主要对象在同一个地址?或指向同一地址?

void main(){

 Result result = new Result(); //empty object

 Timer timer = new Timer();
 timer.schedule(new UpdateResultTask(result);

 result.getValue(); has some valid values. Is not empty anymore.

}

public class UpdateResultTask extends TimerTask {

    private Result result;

    //Constructor 
    public UpdateResultTask(Result result) {
        this.result = result;
     }

     @Override
     public void run() {
     // the local result object gets filled here
     //where response is some http response
     result = response.getEntity(Result.class);
    }
}

由于局部函数内部的变化反映在main函数的外部,我假设它是因为在构造时,新的(主)对象都具有相同的地址?

我理解正确吗?在java中,传递对象的值只是传递对象地址的副本?

0 个答案:

没有答案