I have heard that two objects are created when you execute `String s = new String("lol");`. One object is created for the string constant pool and one for `s` on the heap.

So, are 2 objects created when we execute the following? `String s = "lol";` Is the object creation the same?

Edit:

how many objects are created by :
`String s1 = new String("lol1");`

and how many by :
`String s2 = "lol2";`