A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© clh 中级黑马   /  2014-9-18 20:11  /  1249 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么byte[]  s;
计算长度时候调用s.length;    注意没有括号
而String s;
计算长度调用s.length();   

这是什么原因,我查了api字符数组没有length()这个方法,但是为什么没有这个方法呢?而且源代码里面也没有支出length这个属性就可以直接调用,,,,谁能详细讲一下 来龙去脉,包括,怎么知道哪些属性是直接调用而不是通过方法调用的,,,,

9 个回复

倒序浏览
数组是Java的内建(built-in)类型,它是属于Java语言的,由编译器和JVM直接提供实现和支持,所以API里是查不到的。数组也是引用类型,这可以从数组创建使用new运算符看出。length是数组类型的实例变量,而数组类型并没有length()这个方法
回复 使用道具 举报
fantacyleo 发表于 2014-9-18 20:35
数组是Java的内建(built-in)类型,它是属于Java语言的,由编译器和JVM直接提供实现和支持,所以API里是查 ...

那还有哪些是类似这种情况的,或者可以去哪里看么
回复 使用道具 举报
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语言的某个语法时可以选择性阅读。

评分

参与人数 1技术分 +1 收起 理由
舍我其谁 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
fantacyleo 发表于 2014-9-18 21:36
8种基本类型也是built-in的。可以参考Java language specification http://docs.oracle.com/javase/specs ...

谢谢,{:3_57:}懂了
回复 使用道具 举报
在数组中length 是属性,而在STRING中时对象的方法。。回答完毕
回复 使用道具 举报
clh 中级黑马 2014-9-18 22:30:54
7#
fantacyleo 发表于 2014-9-18 21:36
8种基本类型也是built-in的。可以参考Java language specification http://docs.oracle.com/javase/specs ...

楼主是什么身份啊,回答的竟如此专业,,大神啊
回复 使用道具 举报
clh 发表于 2014-9-18 22:30
楼主是什么身份啊,回答的竟如此专业,,大神啊

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

啊这样啊,楼主准备进哪一期
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马