当没有任何IDE的情况下,如何得到一个数组的长度,如何得到一个String的长度 我问这个了很对不同水平的开发者:初级的中级的他们不能快速正确地回答这个问题当IDE提供快速的补全功能时候,也带了这个问题的“表面理解“在这个文章中,我将解释关于Java数组的几个概念 答案是:,我来为大家讲解一下关于怎么用length给一个数组定义?跟着小编一起来看一看吧!
怎么用length给一个数组定义
首先你可以快速回答下面问题吗?当没有任何IDE的情况下,如何得到一个数组的长度,如何得到一个String的长度。 我问这个了很对不同水平的开发者:初级的中级的。他们不能快速正确地回答这个问题。当IDE提供快速的补全功能时候,也带了这个问题的“表面理解“。在这个文章中,我将解释关于Java数组的几个概念。 答案是:
int[] arr = new int[3];
System.out.println(arr.length);//length for array
String str = "abc";
System.out.println(str.length());//length() for string
这个问题变成了为什么数组有长度属性但是字符串没有? 或者为什么String有字符串方法而数组没有。
二 为什么数组有length属性首先,数组是个对象的容器保存着固定数量的一个类型的值。数组被创建后,它的长度将不能改变的。数组的长度是个可用的不可改变的成员变量。因此长度被当做一个数组的预定于的属性。 数组有两种方法被创建:
- 数组可以通过表达式创建。
- 数组初始器。 当它被创建时候,这个长度是被指定的。一个数组创建表达式可以像上面例子的代码被使用。它指定的成员的类型。数组的层数,和至少一层数组的长度。 下面的声明仍然是合法的,当它指明了一层的长度。
int[][] arr = new int[3][];
数组初始化起创建了一个数组和提供所有的构造它的初始值。它被书写为逗号分隔的字表达式列表,被{}括起来。 如下:
int[] arr = {1,2,3};
如果array是个对象的话,那么下面代码是合法的:
Object obj = new int[10];
一个数组包含了所有从Object类(除了克隆)的类的成员。为什么没有一个叫做数组的类呢? 我们也不能发现一个Array.java的文件。粗糙的解释是它们对我们隐藏了。 你可以思考一个问题,如果有一个叫数组的类,它看起来应该什么样子。它将仍然需要一个数组去保存所有的数组数据,对不对?因此定义一个如此的类不是一个好主意。 实际上,我们可以得到一个数组的类通过下面的代码。
int[] arr = new int[3];
System.out.println(arr.getClass());
//输出:
class [I
class [I 代表着运行运行时候class对象的签名。一个数组由int类型组成。
四 为什么String有length()方法。字符串后面的数据是一个字符数组。对每个程序来讲,它都不需要定义一个属性。不像C,在Java中字符串数组不是字符串。
,