I have done a small
test and I have found out this with a little code:
String s1 = "111";
String ss1 = "111";
s1 == ss1 is true, so the first 111 went to the pool and the second one got the reference to the existing one.
Then I did in another program:
String s1 = new String ("111");
String ss1 = "111";
In the second case, s1 == ss1 is false, so the new didn't put anything in the pool.
This is what I understand from the test. Do you agree?