没有合适的资源?快使用搜索试试~ 我知道了~
首页Java中的length和length()深入分析
Java中的length和length()深入分析
1.5k 浏览量
更新于2023-05-31
评论
收藏 66KB PDF 举报
java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性。java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法。这篇文章将介绍几个关于Java数组的关键概念。
资源详情
资源评论
资源推荐

Java中的中的length和和length()深入分析深入分析
java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性。
java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法。这篇文章将
介绍几个关于Java数组的关键概念。
在开始本文前先考虑以下一个问题在开始本文前先考虑以下一个问题
在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度?
这个问题我问过不同水平的程序员,包括初级和中级水平的。他们都不能准确而自信地回答这个问题(如果你能很准确很自信
的回答这个问题,那么证明针对这一知识点你比大多数中级程序员掌握的好)。由于现在很多IDE都有代码补全功能,这使得
开发人员在很多问题上都理解的很肤浅。
上面问题的正确回答姿势应该是这样的:上面问题的正确回答姿势应该是这样的:
int[] arr = new int[3];
System.out.println(arr.length);//使用length获取数组的程度
String str = "abc";
System.out.println(str.length());//使用length()获取字符串的长度
那么问题来了,为什么数组有length属性,而字符串没有?或者,为什么字符串有length()方法,而数组没有?
为什么数组有为什么数组有length属性?属性?
首先,数组是一个容器对象,其中包含固定数量的同一类型的值。一旦数组被创建,他的长度就是固定的了。数组的长度可以
作为final实例变量的长度。因此,长度可以被视为一个数组的属性。
有两种创建数组的方法:有两种创建数组的方法:
1、通过数组表达式创建数组。
2、通过初始化值创建数组。
无论使用哪种方式,一旦数组被创建,其大小就固定了。
使用表达式创建数组方式如下,该方式指明了元素类型、数组的维度、以及至少一个维度的数组的长度。
该声明方式是符合要求的,因为他指定了一个维度的长度(该数组的类型为int,维度为2,第一维度的长度为3)
int[][] arr = new int[3][];
使用数组初始化的方式创建数组时需要提供所有的初始值。形式是使用{和}将所有初始值括在一起并用,隔开。
int[] arr = {1,2,3};
注:注:
这里可能会有一个疑问,既然数组大小是初始化时就规定好的,那么int[][] arr = new int[3][];定 义的数组并没有给出数组的第二维的
大小,那么这个arr的长度到底是如何“规定好”的呢?
其实,arr的长度就是3。其实Java中所有的数组,无论几维,其实都是一维数组。例如arr,分配了3个空间,每个空间存放一
个一维数组的地址,这样就成了“二维”数组。但是对于arr来说,他的长度就是3。
int[][] a=new int[3][];
System.out.println(a.length);//3
int[][] b=new int[3][5];
System.out.println(b.length);//3
Java中为什么没有定义一个类似中为什么没有定义一个类似String一样一样Array类类
因为数组也是对象,所以下面的代码也是合法的:
Object obj = new int[10];
数组包含所有从Object继承下来方法(Java中数组的继承关系),除clone()之外。为什么没有一个array类呢?在Java中没有
Array.java文件。一个简单的解释是它被隐藏起来了(注:Java中的数组有点类似于基本数据类型,是一个内建类型,并没有
实际的类与他对应)。你可以思考这样一个问题——如果有一个Array类,那它会像什么样?它会仍然需要一个数组来存放所
有的数组元素,对吗?因此,定义出一个Array类不是一个好的主意。(译者注:这里可能有点绕,道理有点类似于:鸡生蛋
蛋生鸡问题,可能比喻也不是很恰当,请读者自行理解)
事实上我们可以获得数组的类定义,通过下面的代码:




















weixin_38564990
- 粉丝: 4
- 资源: 929
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0