小伙伴们注意了!
小编在这里给大家送上关注福利:
搜索微信公众号“速学Java”关注即可领取小编精心准备的资料一份!
首先,你能快速回答以下问题吗?
我向不同级别的开发者提出了这个问题:入门级和中级级。
他们不能正确或自信地回答问题。
IDE在提供方便的代码自动补全的同时,也带来了“表面理解”的问题。
在本文中,我将解释关于Java数组的一些关键概念。
答案是:
问题是为什么数组有length字段而字符串没有?
或者为什么string有length()方法,而array没有?
1。为什么数组有长度属性?
首先,数组是一个容器对象,它包含一个类型的固定数量的值。
创建数组后,其长度不会更改[1]。
数组的长度可用作最终的实例变量长度。
因此,长度可以看作数组的定义属性。
数组可以通过两种方法创建:1)数组创建表达式和2)数组初始化器。
创建时,指定了大小。
上面的示例中使用了一个数组创建表达式。
它为至少一个嵌套层指定元素类型、嵌套数组的层数和数组的长度。
这个声明也是合法的,因为它指定了嵌套的一个级别。
数组初始化器创建数组并为其所有组件提供初始值。
它是用逗号分隔的表达式列表,用大括号{和}括起来。
例如,
2. 为什么没有一个类“数组”定义类似于“字符串”?
因为数组是对象,所以下面的代码是合法的。
数组包含从类对象继承的所有成员(克隆除外)。为什么没有数组的类定义?我们找不到数组.java文件。一个粗略的解释是它们对我们是隐藏的。你可以考虑这个问题,如果有一个类数组,它会是什么样子?它仍然需要一个数组来保存数组数据,对吧?因此,定义这样一个类不是一个好主意。其实我们可以用下面的代码得到数组的类:
输出:
"class [I"代表类对象"array with component type int"的运行时类型签名。
3.为什么String有length()方法?
字符串的备份数据结构是一个char数组。
没有必要定义不是每个应用程序都需要的字段。
与C语言不同,字符数组在Java中不是字符串。