プログラミング初心者です。

String name1 =“Japan”;
String name2 =“USA”;
String name3;
name3 = name1;
name1 = name2;
name2 = “UK”;
system.out.println(name1);
system.out.println(name2);
system.out.println(name3);

上記コードのアウトプットは

UK (name1 = name2 = UK と考えました)
UK
UK (name3 = name1 = name2 = UK と考えました)

と表示されると思っていましたが、
実際は、以下の通り表示されます。

USA
UK
Japan

なぜこのように表示されるかご教示頂けますと幸いです。
どうぞよろしくお願いいたします。