これを実行すると出力が1になるのですが、何故でしょうか。

�@Integer inti = new Integer(0);
�AInteger intj = new Integer(1);
�Binti = intj;
�Cintj = 2;
�DSystem.out.println(inti);

自分の考えだと、
�@intiが、値0のインスタンスを参照
�Aintjが、値1のインスタンスを参照
�Bintiが、intjが参照しているインスタンスを参照するように変更
�Cintjが参照するインスタンスに値2を設定
�Dintiもintjも同じインスタンスを参照してるはずなので出力は2
になるはずなんですが、1になります。