Java中的length和length()

首先,你能快速回答下面的问题吗?

不借助IDE的代码自动完成,如何获取一个数组的长度?如何获取一个字符串的长度?

我曾问过不同层次的开发者这个问题。他们不能正确的或者自信的回答这个问题。当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属性而字符串没有?为什么字符串有length()方法而数组没有?

第一个问题:为什么数组有length属性?

首先,数组是一个存储固定数目的单一类型的值的容器对象。当一个数组被创建后,它的长度不能再被改变。数组的长度可以看做一个不可变实例的变量length。因此,长度可以被看做一个数组明确的属性。

可以通过两种方式创建数组:1)一个创建数组表达式和2)数组初始化器。当它被创建时,大小已被指定。

在上面例子中我们使用了创建数组表达式。它指定了元素类型,嵌套数组的维度和数组的长度至少为一维数组。

这个声明也是合法,只要指定了数组的第一维度。

使用数组初始化器创建一个数组并指定了数组包含的所有初始化值,使用{}包含所有的值,每个值之间用逗号分隔。

例如:

int[] arr = {1,2,3};

第二个问题:为什么不定一个类似于"String"一样的类”Array“

因为数组是一个对象,所以下面的代码也是合法的:

Object obj = new int[10];

一个数组包含所有从类对象继承过来的成员(不包括克隆)。为什么不定义一个数组类?我们找不到Array.java这个文件。一个粗暴的回答就是它藏起来了不让我们发现。你可以这样考虑这个问题——如果存在Array这样一个类,它看起来会像什么?它仍然需要一个数组存储数组数据,对吧?因此,定义这样的一个类意义不大。

实际上,我们可以通过下面的代码获得一个数组的类:

int[] arr = new int[3];
System.out.println(arr.getClass());

输出:

class [I

”class [I“代表了元素类型为int的数组的类对象的运行时类型签名。

第三个问题:为什么字符串有length()方法

一个字符串的备份数据结构是一个字符数组。不需要定义不是每个程序都必需的一个字段length。不同于C,在Java中一个字符数组并不等同于一个字符串。

时间: 2024-08-18 20:45:42

Java中的length和length()的相关文章

java中数组有没有length()方法?string没有lenght()方法?

java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 ---------------------------------------------------------------------------------------- String 有length()方法,用来求字符串的长度 String  str="Hello"; int leng

Java数组小知识和UML知识 java中的参数传递——值传递、引用传递

数组声明后必须用new为其分配空间 java中数组有没有length()方法,求数组的长度可以使用数组的length属性. 1 2 int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 String 有length()方法,用来求字符串的长度 1 2 String  str="Hello"; int length=str.length(): //求字符串的长度 UML是一个结构图,常用来描述一个系统的静态结构,统一建模语言. Jav

java中length,length(),size()区别

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!这个例子来演示这两个方法和一个属性的用法public static void main(String[] args) {String []list={"m

java 中length,length(),size()的区别

java中的length属性是针对数组的 java中的length()方法是针对字符串String的 java中的size()方法是针对泛型集合的 public static void main(String[] args) throws IOException { String []list={"item1","item2"}; String a="testString"; System.out.println(list.length); Sy

Java基础知识强化21:java中length、length()、size()区别

1.java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2.java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!这个例子来演示这两个方法和一个属性的用法:            public static void main(String[] args) {   

Java中的length字段和length()方法

本文主要讲述Java中的length字段和length()方法,有需要的朋友可以参考下,更多Java教程知识,请登陆疯狂软件教育官网. 首先,你能快速回答下面的问题吗? 如果没有IDE(集成开发环境)的自动补全功能,如何获取数组和字符串的长度? 我问了不同等级的开发者(初级和中级)同样的问题,他们很难准确而确信地给出答案.虽然IDE提供的代码自动补全功能十分方便,但也带来了“表面理解(surface understanding)”的问题.在本文中,我会解释一些和Java数组的关键概念. 上述问题

java中的size,length,length()的区别

java中的size,length,length()的区别 一.size() java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性 二.length() java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法 三.length java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看! 四.例子 public class TEST

java中length属性、length()方法、size()方法

java中的length属性是针对数组说的,用来求数组的长度: length()方法是针对字符串String说的,用来求字符串的长度: size()方法是针对集合说的,求集合元素的个数: 原文地址:https://www.cnblogs.com/xbackjing/p/10469499.html

java中length和length()的区别?

在java中String类可以定义字符串变量和字符串数组,length()用于求String字符串对象的长度,而length用  于求String字符串数组的长度.  length()是求String字符串对象中字符的个数,而length是求字符串数组中有多少个字符串.  他们的用法为: 此代码输出结果为  7  4.  如果想求s2[0]字符串的长度代码可写:t2 = s2[0].length()    即可,即melon的长度,若输出t2的结果则为5.————————————————版权声明