hi
understood the following statements and you will get clear on your doubts
1) Any initialisation object will be done by using new operator (i.e)
String s = new String("Testing");
2) Java provides a sring literal("") to create a String object so the above statment can be say as
String s = "Testing".
so the difference between the above two statement was , observe closely the second point and see in the first point now , we are using a String literal and also a new keyword
new String("Testing");
new keyword will create one Stirng object and also for the Stirng literal "Testing"
and
In second case if i say:
String s1 = s;
Would s1 refer to the intermediate object pointed to by s or directly to "abc".
yes you are right now you have two refernce s,s1 for a single String object "abc".
Have a look at immutable concept in String ....

hope i'm clear to you ....