深入分析java中的length和length()-java开发java经验技巧

深入分析java中的length和length()-java开发java经验技巧

ID:30971848

大小:68.50 KB

页数:3页

时间:2019-01-05

深入分析java中的length和length()-java开发java经验技巧_第1页
深入分析java中的length和length()-java开发java经验技巧_第2页
深入分析java中的length和length()-java开发java经验技巧_第3页
资源描述:

《深入分析java中的length和length()-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、深入分析Java中的length和lcngthQ-编程开发技术深入分析Java中的length和length()原文出处:Hollis(@Hollis_Chuang)在开始正文之前,请你快速回答如下问题:在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度?这个问题我问过不同水平的程序员,包括初级和中级水平的。他们都不能准确而自信地回答这个问题(如果你能很准确很自信的冋答这个问题,那么证明针对这一知识点你比大多数中级程序员掌握的好)。由于现在很多IDE都冇代码补全功能,这使得开发人员

2、在很多问题上都理解的很肤浅。本文将介绍几个关于J3V3数组的关键概念。上面问题的正确冋答姿势应该是这样的:int[]arr二newint[3];System,out.printin(arr.length);//使用length获取数组的程度Stringstr=〃abc";System,out.printin(str.length0);//使用length()获取字符串的长度那么问题來了,为什么数组有length属性,而字符串没有?或者,为什么字符串有length()方法,而数组没有?为什么数组有length属性?首先,数组是一个

3、容器对象(Java中的数组是对象吗?),其中包含固定数量的同一类型的值。一旦数组被创建,他的长度就是固定的了。数组的长度可以作为final实例变量的长度。因此,长度可以被视为一个数组的属性。有两种创建数组的方法:1、通过数组表达式创建数组。2、通过初始化值创建数组。无论使用哪种方式,一旦数组被创建,其大小就固定了。使用表达式创建数组方式如下,该方式指明了元素类型、数组的维度、以及至少一个维度的数组的长度。该声明方式是符合要求的,I大I为他指定了一个维度的长度(该数组的类型为int,维度为2,第一维度的长度为3)int[][]ar

4、r=newint[3][];使用数组初始化的方式创建数组时需要捉供所冇的初始值。形式是使用{和[将所有初始值描在一起并用,隔开。int[]arr={1,2,3};注:这里可能会有一个疑问,既然数组大小是初始化时就规定好的,那么int[][]arr=newint[3][];定义的数组并没冇给出数组的第二维的大小,那么这个arr的长度到底是如何“规定好”的呢?其实,arr的长度就是3。其实Java中所有的数组,无论几维,其实都是一维数组。例如emr,分配了3个空间,每个空间存放一个一维数组的地址,这样就成了“二维”数组。但是对于an

5、r来说,他的长度就是3。int[][]a=newint[3][];System,out.printin(a.length);//3int[][]b=newint[3][5];System,out.printin(b.length);//3Java中为什么没有定义一个类似String—样Array类因为数组也是对象,所以下面的代码也是合法的:Objectobj二newint[10];数组包含所有从Object继承卜'來方法(Java中数组的继承关系),除clone()Z外。为什么没冇一个array类呢?在Java屮没冇Array,

6、java件。一个简单的解释是它被隐藏起来了(注:Java中的数组有点类似于基本数据类型,是一个内建类型,并没有实际的类与他对应)。你可以思考这样一个问题——如果有一个Army类,那它会像什么样?它会仍然需要一个数组來存放所有的数组元素,对吗?因此,定义出一个Array类不是一个好的主意。(译者注:这里可能冇点绕,道理冇点类似于:鸡生蛋蛋生鸡问题,可能比喻也不是很恰当,请读者自行理解)事实上我们可以获得数组的类定义,通过下面的代码:int[]arr二newint[3];System.out・printin(arr・gctClass

7、());输岀:class[I"class[1”代表着”成员类型是int的数组”的class对彖运行时类型的签名为什么String有length()方法?String背后的数据结构是一•个char数组,所以没有必要来定义一个不必要的属性(因为该属性在char数值中已经提供了)。和C不同的是,Java中char的数组并不等于字符串,虽然String的内部机制是char数组实现的。(注:C语言中,并没冇String类,定义字符串通常使用charstring[6]二〃hollis";的形式)注:要想把chart]转成字符串有以下方式:c

8、har[]s={'a','b','c'};Stringstringl=s.toStringO;Stringstring2=newString(s);Stringstr、ing3二String,valueOf(s);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。