In the first syntax(String string1= "string1";), just one String object is created for any define String .. = "...."; and one reference variable pointing to it. The object is created in the String constant pool maintained by JVM. In the second case String s = new String("Welcome"); , two String objects are created. Since new is called, one String object is created in the normal memory. Also, the string constant "newstring" will be placed in the String constant pool.
So when we don't have New Keyword, we just have one String object is created in the String constant pool.
more information in : Create New Strings in normal memory and in string pool