本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看<活动链接>
提问:数组的length属性在哪里定义?
我们可以使用其公共方法size()确定ArrayList <E>的长度,例如
ArrayList<Integer> arr = new ArrayList(10);
int size = arr.size();
复制代码
同样,我们可以使用length属性确定Array对象的长度
String[] str = new String[10];
int size = str.length;
复制代码
ArrayList的size()方法是在ArrayList类内部定义的,而Array的length属性在哪里定义?
回答1:
数组是Java中的特殊对象,它们具有一个名为length的简单属性,该属性是final。
没有数组的“类定义”(您无法在任何.class文件中找到它),它们是语言本身的一部分。(可以理解为基本数据类型一样的东西)
数组类型的成员都是以下所有:
数组类型的成员都是以下所有:
公共final字段length,其中包含数组的组件数。 长度可以是正数或零。
公共方法clone(),它覆盖类Object中相同名称的方法,并且不引发任何检查的异常。 数组类型T []的clone方法的返回类型为T []。
多维数组的克隆是浅克隆,也就是说,它仅创建一个新数组。 子数组是共享的。
所有成员都从Object类继承; 不继承的对象的唯一方法是其克隆方法。
复制代码
评论区补充说明:
为什么数组不像对象?因为历史。设计Java时,在语法和样式上与C不相似时,大多数语言创新尝试都失败了。因此,在那个时代,C ++,Objective-C和Java是少数几种避免晦涩难懂的语言。Java的设计被有意识地设计为包括花括号,基本数据类型和纯数组,以使当今的主流程序员都熟悉。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END