首页 » 网站建设 » php获取array的长度技巧_Java 若何获取数组和字符串的长度

php获取array的长度技巧_Java 若何获取数组和字符串的长度

访客 2024-11-09 0

扫一扫用手机浏览

文章目录 [+]

在逛 programcreek 的时候,我创造了上面这个主题。
说实话,我当时脑海中浮现出了这样一副触目惊心的画面:

口试官老马坐在我的对面,地中海式的发型令我敬佩有加。
只管略显怠倦,但他仍旧自傲地向我抛出了上面这个问题。
稍稍迟疑了一下,我回答说:“数组用 length,字符串用 length 跟上小括号”。
老马不愧是口试中的高手,一瞬间就从我的回答中捕获到了不自傲。
我能感想熏染得出来,由于我看到老马的嘴角微微地动了一下,彷佛想要咂咂嘴。
但出于对付我的礼貌,他克制住了。

php获取array的长度技巧_Java 若何获取数组和字符串的长度

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

php获取array的长度技巧_Java 若何获取数组和字符串的长度
(图片来自网络侵删)

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 字段呢?

标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读1 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读1 评论0