美文网首页
java中为什么要有两个length和length()?

java中为什么要有两个length和length()?

作者: 憩在河岸上的鱼丶 | 来源:发表于2019-02-28 10:21 被阅读0次

    为什么Java中要有length和length(),都是用length不可以吗?

    length: 数组(int[],double[],String[]),用来获取数组的长度
    length(): 字符串相关(StringStringBuilder等),用来获取String的长度
    size(): 集合CollectionArrayListHashSet等),用来获取Collection的大小

    首先来说说lengthsize():

    length不是一种方法,所以完全有意义的是它不能用于对象,它只适用于数组。
    size()它的名字描述得更好,因为它是一个方法,它将用于那些使用集合(集合框架)的对象
    String不是一个原始数组(所以我们不能使用.length),也不是一个Collection (所以我们不能使用.size()),这就是为什么我们还需要一个不同的length(),保持差异并易于理解。

    在代码中,我们看到一个对象在调用length,就很容易知道他是一个数组,而不用跳到对象声明处查看她的类型。

    另外,数组的length既不是属性也不是方法,在数组对象上调用length,会被变异成一条arrayLength指令,二访问字段会被编译为getFieldgetStatic指令
    作为答案为什么?
    我发现它很有用,易于记忆,使用和友好,
    参考链接:
    https://stackoverflow.com/questions/1965500/length-and-length-in-java#
    https://www.programcreek.com/2013/11/start-from-length-length-in-java/

    相关文章

      网友评论

          本文标题:java中为什么要有两个length和length()?

          本文链接:https://www.haomeiwen.com/subject/wqbjvftx.html