The code is pretty self explanatory. I expected when I made a1 and b1 that I was creating two different string instances that contain the same text
a1
b1
Compiler optimization. Simple as that.