从Java中的length和length()开始

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字段,因为并不是所有应用程序都需要。

原文地址:https://www.cnblogs.com/lianliang/p/5329051.html