HiSEN

该Java语句创建了多少个对象?

1
String str = new String("java");

答案:最少一个,最多两个

  1. java中有常量池的概念,常量池和类文件相关,其数据存放的区域是在方法区中(方法区是jvm中内存模型的概念)
  2. 因为当你使用关键字new的时候是一定会生成一个String类的实例,当你使用直接量的方式定义了一个字符串时,假如这个字符串在常量池中,则不会去实例化String,反之则会生成一个String类的实例,并置入常量池