往Collection<Object>添加了new Object()和new String(),为什么查询new Object()是false,查询new String()是true
代码如下图
import java.util.ArrayList;
import java.util.Collection;
public class Main {
public static void main(String[] args) {
Collection<Object> c = new ArrayList<Object>();
c.add(new Object());
c.add(new String());
System.out.println(c.size());
System.out.println(c);
System.out.println(c.contains(new Object()));
System.out.println(c.contains(new String()));
}
}
运行结果如下图:
第一个是false
第二个是true
是和方法区中的字符串常量池有关吗