Java技术知识分享,Java如何求数组的长度_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java技术知识分享,Java如何求数组的长度

Java技术知识分享,Java如何求数组的长度

更新时间:2020-06-01 16:38:21 来源:极悦 浏览2647次

限时 1 秒钟给出答案,来来来,听我口令:“Java 如何获取数组和字符串的长度?length 还是 length()?”

Java技术知识分享,Java如何求数组的长度

到底该用 length 还是 length(),说真的,我当时真有点吃不准,怀念 IDE 的代码自动提醒功能啊!

int[] arr = new int[4]; System.out.println(arr.length);// 获取数组的长度 String str = "沉默王二"; System.out.println(str.length());// 获取字符串的长度 

// new int[] arr = new int[4]; arr[0] = 0; arr[1] = 1; arr[2] = 2; arr[3] = 3; // {} int [] arr1 = {0, 1, 2, 3}; 
Object arr2 = new int[4]; 
Object arr2 = new int[4]; System.out.println(arr2.getClass()); Object arr3 = new String[4]; System.out.println(arr3.getClass()); 
class [I class [Ljava.lang.String; 
public final class String   implements java.io.Serializable, Comparable, CharSequence {   /** The value is used for character storage. */   private final char value[]; } 
   /**   * Returns the length of this string.   * The length is equal to the number of Unicode   * code units in the string.   */   public int length() {     return value.length;   } 

最后提醒一点:万丈高楼平地起。一栋楼能盖多高,一座大桥能造多长,重要的是它们的地基。同样对于我们技术人员来说,基础知识越扎实,走得就会越远。

总结一下,Java 获取数组长度的时候用 length,获取字符串长度的时候用的是 length(),他们之间的区别我相信大家已经搞清楚了。

length() 方法返回的正是字符数组 value 的长度(length),value 本身是 private 的,因此很有必要为 String 类提供一个 public 级别的方法来供外部访问字符的长度。

那为什么字符串 String 类会有 length() 方法呢?来看一下源码就明白了。

但这样做真的有必要吗?为数组单独定义一个类,是不是有点画蛇添足的意味。那既然数组没必要定义成一个类,也就没有必要再定义一个 length() 方法来获取数组的长度了,直接用 length 这个字段就可以了,不是吗?

一个合理的解释是 Java 将其隐藏了。假如真的存在一个 Array.java,我们也可以假想它真实的样子,它必须要定义一个容器来存放数组的元素,就像 String 类那样。

那为什么数组不单独定义一个类来表示呢?就像字符串 String 类那样呢?

class [I 表示一个“int 类型数组”在运行时的对象类型信息;class [Ljava.lang.String; 表示一个“字符串类型数组”在运行时的对象类型信息。

输出的结果会是什么呢?

这就意味着数组继承了超类 java.lang.Object 的所有成员方法和字段。事实上,的确如此,我们可以通过以下代码来获取数组的类型信息 Class。

由于数组也是对象,所以以下代码是合法的。

但不管用哪种方法,数组的长度是可以明确知道的。并且不会再变长或者变短(学不了孙悟空的金箍棒)。

创建数组的方法有两种,这个应该大家都知道了。一种是通过 new 关键字创建指定长度后再赋值,另外一种是通过 {} 直接进行初始化。

首先呢,我们必须要明白:数组是一个容器,当它被创建后,不仅元素的类型是确定的,元素的个数也是确定的。换句话说,数组的长度是确定的,不可能再变长或者变短。因此,数组可以使用一个字段(length)来表示长度。

按理说,数组和字符串都是对象,访问长度都用 length() 方法就好了。为什么数组偏偏剑走偏锋用的 length 字段呢?

Java技术知识分享,Java如何求数组的长度

以上就是极悦java培训机构的小编针对“Java技术知识分享,Java如何求数组的长度”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>