Object[] obj = new Object[]{5};

ArrayList al = new ArrayList();
al.add(5);
它们谁的性能会更高些?

解决方案 »

  1.   

    我觉得静态数组比动态数组性能优,java的静态数组没add,remove等的方法,ArrayList的存储、方法皆比前者开销大。一般情况下,低级数据类型比高级数据类型性能高,但也要看什么应用,如数组需要频繁的插入删除操作,当然用ArrayList,自带的add、remove应比自建的好。
      

  2.   

    第一个性能高,java中动态的一般都是以牺牲性能来达到方便实用的目的,ArrayList也不例外
      

  3.   

    ArrayList本身就是用数组来实现的,从源码中看,ArrayList先维护了一个固定长度的数组,然后当你插入的数组要超出这个数据的长度的时候会重新new更长的数组,这个数组的长度有一个固定的公式,然后把原数组的内容复制到新数组当中去。
    从楼主的操作看来性能是差不多的,但两者之间我觉得不能这么比,如果已知长度的话那肯定是用数组,主要是因为占用资源会相对较少,毕竟ArrayList是对数组的封装,但是从动长的角度来说,ArrayList提供了这么一种可变长度的功能当然是必然的选择了
      

  4.   

    肯定是前一个。
    原生数组的效率是最高的,ArrayList的底层也是一个数组,但实际上加了维护,才能提供诸如size()方法、get方法。
    效率肯定是数组最高。