美文网首页
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