Array的getLength()方法和 数组的length属性有什么不同的作用??或者说有什么区别?
感觉一样,不知道以后该如何选择还有对数据更新的时候,为了少写一两段查询的代码,我在sql语句里嵌套好几个子查询,这样好不好?
效率是否降低了呢?听说子查询效率最低,是否如此?

解决方案 »

  1.   

    就像你所说的,一个是Array类的静态方法,一个是数组本身的属性,一般都用属性,自己本身有属性,何必借别人的方法呢?少加载一个类!
      

  2.   

    Array的getLength()是个静态方法可以返回任何数组的长度,是动态绑定。
    数组的length属性是隶属于某个数组对象的,是和特定的数组对象绑定的,可以说是个静态绑定。
      

  3.   


    1  ,1楼和3楼的很好.
    2  ,
    还有对数据更新的时候,为了少写一两段查询的代码,我在sql语句里嵌套好几个子查询,这样好不好? 
    效率是否降低了呢?听说子查询效率最低,是否如此?
     
    嵌套好几个子查询这么做不太合理.
    效率低是肯定的. 而且查询语句复杂也不便于维护 . 而且在一些老版本的数据库中甚至都不支持 子查询  如: mysql 的一些旧版本.
    所以也不利于程序的扩展.
      

  4.   

    我的个人看法
    1 length() 是一个方法,会自动计算一次里面有对少个,适用于数量会变化的集合
    2 length 是一个属性,适用于数量尺寸不会变化的数组,字符串等
    3 语句效率要通过实践验证,而不是猜测。
      你可以把生成的SQL 手工执行看看,单独的几个,和写在一起的几个对比一下。  一般情况下,并不是所有的语句都需要优化,你应该把重点放在速度最慢的几个语句上。
      

  5.   


    呵呵,说的有点问题吧,对字符串而言哪有length的属性,只有length()的方法。。呵呵,手工执行看也看不出来,要设置时间点,让程序去运算执行了多长时间才行,太麻烦了些没多少时间去做啊。。
    破项目都改不完呢。。呵呵,速度最慢的是哪些呢,靠自己的感觉去判断还是?
      

  6.   


    错误,getLength()不是静态方法.
      

  7.   

    是吗?我的是j2se5.0的javadoc下面是关于Array的getLength的说明
    getLength,不知道ls说的不是是什么意思,能给解释一下吗?谢谢。
    ===================================================================
    public static int getLength(Object array)
                         throws IllegalArgumentException以 int 形式返回指定数组对象的长度。 参数:
    array - 数组 
    返回:
    数组的长度 
    抛出: 
    IllegalArgumentException - 如果对象参数不是一个数组
    ======================================================================