Java从入门到精通读书笔记(3.10数组).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.10数组 (重点) 之前在讲解数据类型的时候,java的数据类型分为基本数据类型和引用数据类型,那么实际上数组就属于数据类型,所以,在这里就首先观察一下什么叫做引用。 3.10.1基本概念 例如,要定义100个整形变量,按照原始的方式是:i1,i2,i3 ...i100,这样做不好管理,所以,这样就可以使用数组来完成操作了,数组是一组相关的变量集合。 在java中可以使用如下的语法格式定义数组: 数据类型 数组名称 [] = new 数据类型 [长度]; 其中,也可以将以上的语法,变为以下的形式: 数据类型 [] 数组名称 = new 数据类型 [长度]; 只是,个人已经习惯与第一种写法,所以采用那种方式由个人自行决定。 范例:定义一个整形数组。 此时,数组已经声明完毕,那么下面就可以使用数组,使用的形式如下, 通过“数组名称[小标]”的形式进行访问。 在进行访问的时候一定要注意的是,下标从0开始,10个大小的数组,小标是0~9 范例:访问数组中的一个、第三个元素。 编译运行后: 因为现在的都是整形数据,默认的都是0,但是在进行数组操作的时候,一定要注意,数组的下标一定绝对不能超过数组的界限,如果超过规定的界限之后,将会出现以下错误: 编译运行后: 出现了数组越界异常“ArraylndexxoutofBoundsException”。 另外,在数组的操作中,为了方便起见,可以通过“数组.length”,取得一个数组的长度。 编译运行: 以上所进行的数组操作中,因为使用到了关键字“new”,所以在数组使用的时候已经为其开辟好了新的空间。 数组的使用分为两个部分: 声明数组:声明数组的时候一般都栈内存中声明的。 为数组开辟空间,使用关键词new进行空间的开辟,在堆内存中声明。 将以上的操作化成图形,如下所示: 所以有时候,如果为了更好的观察清楚以上的图形,就可以将数组的使用分为两个步骤: 声明一个数组:数据类型 数组名称[] = null; //因为数组是引用的数据类型,引用的数据类型默认值都是null。 开辟数组:数组名称 = new 数据类型[长度]; //使用关键字new完成。 编译运行: 数组声明的时候,所有的内容都是默认值0,下面想可以声明一个3个元素的数组,之后为数组里的每一个元素设置的内容都是是奇数,并通过此程序,观察内存的分配操作。 编译运行: 以下是定义数组的步骤: 虽然现在操作的是数组名称,但是实际上是改变的都是堆内存中的内容。所以这样的操作在java中就称为引用数据类型。 如果现在假设把栈内存空间保存的内容当作一个人的名字,那么堆内存实际上就表示具体的一个人,也就是说实际上在栈中存放的只是一个标记而已。 所以此时,可以为一个堆内存空间同时设置多个栈的引用。 之后,由数组y修改堆空间的内容。 编译运行后: 输出的时候发现,现在输出的是x,但是x[2]的内容已经改变了。因为x和y指向了同一个空间。那么这样的操作就表示引用数据类型的操作,也可以成为引用传递。 重点回顾 数组属于引用数据类型,使用的时候需要开辟内存空间。 数组的定义格式: 声明时直接开辟内存空间: 数据类型 数组名称[] = new 数据类型 [长度]; 数据类型 [] 数组名称 = new 数据类型 [长度]; 分部声明: 声明数组:数据类型 数组名称[] = null; 实例化数组:数组名称 = new 数据类型[]; 关键字new只要一出现,则肯定表示数据类型是引用数据类型,要进行堆栈空间开辟。 范例:声明一个数组。 编译运行: 开辟的内容都使用默认值表示,如果要想为数组的元素赋值,则需要通过下标的方式访问。 编译运行后: 开辟栈内存空间: int score [] = null; 开辟栈内存空间的意义在于,就相当于表示一个人的名字。 开辟堆内存: score = new int[3]; 数组只有开辟了堆内存空间以后才可以使用。 之前的代码,数组的操作属于动态初始化,因为在开辟数组的时候并不知道数组中的具体内容是多少,而只是使用了默认值表示,所以,此时可以按照如下的格式进行静态初始化操作。 数据类型 数组名称[] = {若干取值........}; 范例:使用静态初始化操作。 编译运行: 之前的数组都属于一维数组,在数组中使用二维数组。 动态初始化: 数据类型 数组名称[] = new 数据类型[长度]; 静态初始化: 数据类型 数组名称[] = {{11,2,3},{24,54,45},}; 范例:二维数组 编译运行: Arrays(理解) Arrays是一个与数组操操作相关的类,可以使用此类进行数组的排序操作。 编译运行后: 一维数组 1

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档