String s1="imooc";与String s3=new String("imooc");两者都是创建一个字符串对象,但有什么区别吗?
楼上正解
String s1="imooc";创建一个字符串对象s1="imooc";时,Java运行时(运行中JVM)会拿着这个"imooc";在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串"imooc";,否则,不在池中添加。
String s3=new String("imooc");使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。这里就是直接创建字符串"imooc"对象。