Integer i1=1;//1
Integer i2=1;//2
Integer i3=new Integer(1);//3
Integer i4=new Integer(129);//4
String s=new String("A");//5
1,2,3,4,5分别产生几个对象?

解决方案 »

  1.   

    请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧
      

  2.   

    Integer i1=1;//1
    Integer i2=1;//2
    Integer i3=new Integer(1);//3
    Integer i4=new Integer(129);//4
    String s=new String("A");//5
    首先你要知道Integer i1=1;这样的封装,JVM是怎么执行的,
    这样自动封装,是调用Integer的valueOf
    看Integer的valueOf方法知道,如果是-128--+127被缓存起来了,如果是在这个范围之内,都是返回同一个对象.
    所以Integer i1=1;//1
    Integer i2=1;//2是一个对象,后边的每一个都是单独的对象
    还要考察String s=new String("A");创建几个对象的话,我就没话说了.