一个小的类初始化问题

public class a{
public b bb[] = new b[3];

public class b{
public void test(){
int index = 9;
if (bb[0] == this) index = 0;

if (bb[1] == this) index = 1;

if (bb[2] == this) index = 2;
System.out.println(bb[0]);
System.out.println(bb[1]);
System.out.println(bb[2]);
System.out.println(this);
System.out.println(index);
}
}
public a(){
bb[0]=new b();
bb[1]=new b();
bb[2]=new b();
bb[0].test();
}
public static void main(String[] args){
a ad = new a();

}
}

结果是:
a$b@35ce36
a$b@757aef
a$b@d9f9c3
a$b@35ce36
0
也就是说bb[0]和this的地址是一样的,不明白是什么原因

我就不明白为什么bb[0]会等于this.我觉的应该每个类都是不同的地址呀

了解一下对象引用等相关知识。