Java中length、length()、size()区别

11 篇文章 1 订阅

记某一次刷题:
计算下字符串的长度,哦哦简单嘛,然后一写

int len=str.length;

咦?怎么报错了,那再加上**()括号**试试把

int len=str.length();

编译通过了,好的,下次一定要记得**length()**后面是要加括号的!!!!


不久之后一题:

计算以下数组nums长度,哦哦简单的

int length=nums.length();

编译失败。。咦?我上次明明记得length后面是要加括号的呀,难道是我记错了?算了,那再试试没有括号的把

int length=nums.length;

编译通过,哦~~那我一定是上次记错了,length后面是不要加括号()的!!!

以后就是无限循环


所以length和length()到底谁是正确的呢??

==其实两者都是正确的!==是不是更加很困惑了,怎么可能两个都正确呢!?

其实要搞清楚那个正确,首先要弄清楚后面的**括号()**代表什么含义:

java中什么后面会跟着括号呢?对了,只有方法后面的参数栏会存在括号,所以也就是length()是string类一个方法method!!

只要是java中的方法,不管这个方法有没有入口参数,后面一定是要存在这个括号()的。

原来如此,那为什么也会有不存在括号的length呢?

原因就是length是数组中的一个属性field,调用时就直接是对象名.属性名后面无需加括号()!


综上所述,总结如下:

1.*带括号()*的均是java中的方法methodlength()就是String类的一个method所以有括号

2.不带括号的是类的属性field,比方说penson.name,length就是数组类的一个属性所以不需要括号


size()又是什么情况?

搞清楚了length和length(),那为什么求长度还有用size()的?真是傻傻分不清!
根据之前所述,首先
明确size()肯定是一个方法
。那为什么不用length(),要单独起一个新的名字呢?

在这里插入图片描述

size()是针对泛型集合LIst说的,因为数组静态的在初始化的时候JVM就会为起分配相应的内存大小,但是List是动态的,其没有length的属性。所以java专门提供了size()方法用来计算集合的长度大小。为了以示区别所以叫做size()!(个人猜测,哈哈不对当我没说。)
如果看到泛型或者集合有多少个元素,记得调用size()方法来查看!

  • 29
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值