黑马程序员技术交流社区

标题: length和length() 的问题 [打印本页]

作者: clh    时间: 2014-9-18 20:11
标题: length和length() 的问题
为什么byte[]  s;
计算长度时候调用s.length;    注意没有括号
而String s;
计算长度调用s.length();   

这是什么原因,我查了api字符数组没有length()这个方法,但是为什么没有这个方法呢?而且源代码里面也没有支出length这个属性就可以直接调用,,,,谁能详细讲一下 来龙去脉,包括,怎么知道哪些属性是直接调用而不是通过方法调用的,,,,
作者: fantacyleo    时间: 2014-9-18 20:35
数组是Java的内建(built-in)类型,它是属于Java语言的,由编译器和JVM直接提供实现和支持,所以API里是查不到的。数组也是引用类型,这可以从数组创建使用new运算符看出。length是数组类型的实例变量,而数组类型并没有length()这个方法
作者: clh    时间: 2014-9-18 21:26
fantacyleo 发表于 2014-9-18 20:35
数组是Java的内建(built-in)类型,它是属于Java语言的,由编译器和JVM直接提供实现和支持,所以API里是查 ...

那还有哪些是类似这种情况的,或者可以去哪里看么
作者: fantacyleo    时间: 2014-9-18 21:36
clh 发表于 2014-9-18 21:26
那还有哪些是类似这种情况的,或者可以去哪里看么

8种基本类型也是built-in的。可以参考Java language specification http://docs.oracle.com/javase/specs/jls/se7/html/index.html 这是Java语法语义最权威的资料。但不建议直接当教科书来读,当你想深入了解Java语言的某个语法时可以选择性阅读。
作者: clh    时间: 2014-9-18 22:05
fantacyleo 发表于 2014-9-18 21:36
8种基本类型也是built-in的。可以参考Java language specification http://docs.oracle.com/javase/specs ...

谢谢,{:3_57:}懂了
作者: 安少康    时间: 2014-9-18 22:23
在数组中length 是属性,而在STRING中时对象的方法。。回答完毕
作者: clh    时间: 2014-9-18 22:30
fantacyleo 发表于 2014-9-18 21:36
8种基本类型也是built-in的。可以参考Java language specification http://docs.oracle.com/javase/specs ...

楼主是什么身份啊,回答的竟如此专业,,大神啊
作者: fantacyleo    时间: 2014-9-18 22:51
clh 发表于 2014-9-18 22:30
楼主是什么身份啊,回答的竟如此专业,,大神啊

兄弟谬赞了。我只是一个打算转行程序员的编程爱好者,也在努力进黑马学习呢
作者: noiary    时间: 2014-9-18 22:57
视频好像讲过length是变量, length()是方法,String类的方法.  其他就不知道了.
作者: clh    时间: 2014-9-18 23:16
fantacyleo 发表于 2014-9-18 22:51
兄弟谬赞了。我只是一个打算转行程序员的编程爱好者,也在努力进黑马学习呢 ...

啊这样啊,楼主准备进哪一期




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2