1、在没有IDE自动补齐的情况下,怎样得到数组的长度?怎样得到字符串的长度?
int[] arr = new int[3];
System.out.println(arr.length);//length for array
String str = "abc";
System.out.println(str.length());//length() for string
为什么数组有length属性而String只有length()方法呢?
2、为什么Arrays有length属性?
首先,数组是一个对象容器,保存的是一系列单一类型的值;然后数组被创建,但是长度不能被改变;数组的长度可以当成是 final 实例;因此长度可以被当成是数组的一个属性;
创建数组有两种方式:1)数组创建表达式;2)数组初始化创建。在创建的时候,数组的长度就被指定;
在数组被创建的时候,就指定了数组元素的类型,数组的维度,至少一个维度的长度;
int[][] arr = new int[3][];
数组初始化创建一个数组,并为它的所有元素提供了初始值。写成逗号分隔的表达式列表,用大括号{和}括起来。
nt[] arr = {1,2,3};
3、为什么没有定义一个Array类类似String类那样?
因为一个数组就是一个对象
Object obj = new int[10];
一个数组可以存储所有从Object类继承的对象,如果定义了一个Array类,它仍然需要一个数组来保存数据,因此,定义一个Array是多余的,可以通过代码得到数组的类型:
int[] arr = new int[3];
System.out.println(arr.getClass());
输出:class [I
class [I 说明了数组运行时的类型,同时也告诉我们数组元素的类型是int
4、为什么String类有length()方法?
String类的后台数据结构是char数组,String类里面需要定义一个length字段,因为并不是所有应用程序都需要。