黑马程序员技术交流社区
标题:
java 中length与lehgth()区别
[打印本页]
作者:
sjtree
时间:
2015-8-19 17:53
标题:
java 中length与lehgth()区别
还有 为什么 System.in System.out调用时后面不用加()
作者:
黄蒙
时间:
2015-8-19 18:00
length是代表对象的成员吧,而length();则是表示你调用了这个对象的方法,返回的是长度数值(int);System.in也是调用对象中的成员,本质是一个输入流对象。
作者:
zhao1991
时间:
2015-8-19 18:20
一个是成员变量,一个是成员方法
作者:
蓬头小道士
时间:
2015-8-19 20:25
length用在求数组的长度,length()是字符串的长度。
作者:
龙哥Longer
时间:
2015-8-19 20:48
学习了,谢谢分享~
作者:
pengbeilin
时间:
2015-8-19 21:42
本帖最后由 pengbeilin 于 2015-8-20 09:58 编辑
数组的length即不是方法,也不是字段。在一个数组对象上调用length,会被Java编译器编译成一条arraylength指令(Java binary code)。
而访问字段的语句会被编译成getfield或getstatic指令,调用方法的语句则会被编译成invokestatic,invokevirtual或invokespecial等指令。
Java字节码中有许多单独针对数组的指令,它们在其它任何非数组类型的对象上调用都是毫无意义的。
由此可见,它们本就不一样,不能等同起来直接进行对比。
String里length()是一个方法
QQ截图20150819214100.png
(54.31 KB, 下载次数: 8)
下载附件
2015-8-19 21:42 上传
作者:
beimenshisan
时间:
2015-8-19 22:59
length 是数组的属性,代表数组的长度, length()是方法
作者:
helloxiaoyu
时间:
2015-8-19 23:58
问题很好,来学习下
作者:
koibiki
时间:
2015-8-20 00:15
一个是方法一个是属性
作者:
code_linux
时间:
2015-8-20 00:22
带着同样的问题受教了!!
作者:
Marx_D
时间:
2015-8-20 00:27
嗯,是个问题。
作者:
MoonsenHung
时间:
2015-8-20 00:33
一个是数组的属性,一个是方法,带括号的是方法。
作者:
mmppp
时间:
2015-8-20 17:31
为什么System.out.println()是这个样子的呢
首先,System是一个类.类调用方法.所以是System.out
然后out不是一个方法啊.就是一个成员变量而已.就像你Student.name
name后面不是也不加吗,然后System.out这个的返回值是printStream类型的
这个你不知道没关系.然后既然是这个类型的对象,就可以调用这个类里面的方法
对吧.然后println()就是这个类里面的方法.
所以连起来才是System.out.println()这个样子的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2