java - 具有相同引用变量的对象

标签 java

如果两个相同类型的对象具有相同的引用会发生什么?

例如 -

BufferedReader bufferedReader=null;
try{
    bufferedReader = new BufferedReader(new InputStreamReader(a.openStream())); 
    while ((inputLine = bufferedReader.readLine()) != null) {
        //do something
    }

    bufferedReader = new BufferedReader(new InputStreamReader(b.openStream()));
    while ((inputLine = bufferedReader.readLine()) != null) {
        //do something
    }
}
在本例中,

ab 是 URL。

我这里的代码类似于 this page 。在这种情况下,缓冲的读取器对象是否会首先具有 URL a 的数据,然后具有 b 的数据?

最佳答案

我不认为您所表达的问题是您真正想问的。回答您未提出的问题...

您有一个 BufferedReader 类型的引用 bufferedReader

在第 1 行,您将引用初始化为 null。它不指向一个对象。

在第 4 行,您更改了 bufferedReader 引用指向的位置。它现在指向一个最终从 a 获取数据的对象。

在第 7 行,您更改了 bufferedReader 引用指向的位置。它现在指向一个最终从 b 获取数据的对象。

will the buffered reader object first have the data of URL a, and later the data of b?

是的,您的代码将从 URL a 检索数据,然后从 URL b 检索数据。

<小时/>

What happens if two objects of the same type have identical reference?

这更像是:

Foo o1 = new Foo();
Foo o2 = o1;

现在,o1o2 指向同一个对象。在这种情况下,通过任一引用调用方法都会影响同一个(单个)对象。

关于java - 具有相同引用变量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17894334/

相关文章:

java 泛型 : bounded wildcard upsetting eclipse

java - 对可比较接口(interface)的数组进行排序

Java 使用 linux sudo 能力

java - 来自与 fragment 无关的另一个 Activity 的 fragment 中的setText

java - 在具有枚举 (EnumType.STRING) 的实体上使用 LIKE 运算符执行 JPA 查询

java - Liferay : Configuring Multiple Spring MVC Portlets in one liferay plugin project with one common controller and multiple landing pages

Java 泛型类型用于枚举实现上的方法签名

c# - 从使用 List<T> 的 .Net 调用 Java Web 服务

java - 具有排序的行和列的矩阵中第K个最小的元素

java - 如何从java访问在php中创建的memcache项