如果两个相同类型的对象具有相同的引用会发生什么?
例如 -
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
}
}
在本例中,a
和 b
是 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;
现在,o1
和 o2
指向同一个对象。在这种情况下,通过任一引用调用方法都会影响同一个(单个)对象。
关于java - 具有相同引用变量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17894334/