String s="123";在字符串常量池创建了一个值为"123"的String对象;String str=new String ("123");new关键字强制创建了一个str的String对象,值是"123",由于"123"在字符串常量池已经存在,jvm直接取现成的,无须再创建一个;因此共创建了两个对象。假设"123"原本在池中不存在,那么String str=new String ("123");就是创建了两个对象。
2个,面试题常见的