String s = new String("abc");
都说创建了2个对象,一个是引号""创建的字符串abc,一个是new创建的字符串abc
但我有个问题,这个""创建的字符串abc是在string pool里的,如果string pool里本来就有这个字符串,它就根本不会再重复新建了,那我是不是可以认为"abc"可能创建了一个对象,也可能没有创建呢(如果string pool里本来就有这个对象的话,也就是说String s = new String("abc");可能创建了1个对象,也可能创建了2个对象
都说创建了2个对象,一个是引号""创建的字符串abc,一个是new创建的字符串abc
但我有个问题,这个""创建的字符串abc是在string pool里的,如果string pool里本来就有这个字符串,它就根本不会再重复新建了,那我是不是可以认为"abc"可能创建了一个对象,也可能没有创建呢(如果string pool里本来就有这个对象的话,也就是说String s = new String("abc");可能创建了1个对象,也可能创建了2个对象
这样的话s是不会从池中取对象的,会重新创建对象,但他们对应的char数组是同一个,这样就节省了空间
所以也可以说一共创建了
一个char数组对象 {'a','b','c'}
两个String对象