对于这个问题,有两种可能性存在:
1.如果字符串"helloWorld"存在,则创建一个对象
2.如果字符串"helloWorld"不存在,则创建两个对象,一个是"helloWorld"这个字符串常量,一个是
"new String"这个实例对象。
new 是在程序运行的时候根据已加载的系统类String在堆内存里面去实例化一个字符串对象,在String的构造方法里面,传递了一个"helloWorld"字符串,因为String里面的字符串成员变量是final修饰的,所以是一个字符串常量,所以接下来JVM会拿"helloWorld"去字符串常量池里面去试图找到对应它的一个String的对象引用,如果拿不到,就会在堆内存里面去创建一个"helloWorld"的String对象,并且把引用保存到字符串常量池里面,后续如果再有字符串"helloWorld"的一个定义的时候,因为字符串常量池里面已经存在一个"helloWorld"的引用,所以只需要从常量池里面获取对应的引用就可以了,不需要再去创建。
而是勇者的手。