- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 数组与字符串主要内容一维和多维数组的定义数组元素的访问字符串及应用5.1 数组的基本概念数组的概念相同数据类型的元素按一定顺序排列的集合。Java中,数组元素可以为简单数据类型,也可以为对象。 Java语言内存分配问题栈内存:方法中定义的基本类型的变量和对象的引用变量,超出作用域将自动释放。堆内存:存放由new运算符创建的对象和数组。由Java虚拟机的自动垃圾回收器来管理。5.1 数组的基本概念Java语言内存分配问题(续)引用变量:为数组或对象起的一个名称。在堆中创建一个数组或对象后,还可在栈中定义一个引用变量存放该数组或对象在堆内存中的首地址(对象的句柄),以后就可在程序中使用栈的引用变量来访问堆中的数组或对象。 图5.2 数组和对象在没有引用变量指向它时,就会变成垃圾,不被使用,但占内存,在随后不确定的时间释放。5.1 数组的基本概念数组的主要特点数组是相同数据类型的元素的集合;数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起;数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,依次类推。5.2 一维数组一维数组的定义使用Java语言的数组,一般需经过三个步骤:一是声明数组,二是创建空间,三是创建数组元素并赋值。前两个步骤的语法如下: 例如: int[ ] x;//声明名称为x的int型数组,未分配内存给数组 x = new int[10];//x中包含有10个元素,并分配空间或 int[] x = new int[10]; //声明数组并动态分配内存数据类型[ ] 数组名;//声明一维数组数组名=new 数据类型[个数];//动态分配内存给数组 或者数据类型[ ] 数组名= new 数据类型[个数];x的类型是对一个int数组对象的引用,x是一个引用变量。数组类Arrays 表5.1见TestArrays.javajava.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:给数组赋值:通过fill方法。对数组排序:通过sort方法,按升序。比较数组:通过equals方法比较数组中元素值是否相等。查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。填充数组:Arrays.fill(array, 5):5 5 5 5 5 将数组的第2和第3个元素赋值为8:Arrays.fill(array, 2, 4, 8):5 5 8 8 5 对数组的第2个到第6个元素进行排序进行排序:Arrays.sort(array1,2,7):7 8 2 3 3 6 12 5 4 对整个数组进行排序:Arrays.sort(array1):2 3 3 4 5 6 7 8 12 比较数组元素是否相等:Arrays.equals(array, array1):false克隆后数组元素是否相等:Arrays.equals(array1, array2):true元素3在array1中的位置:Arrays.binarySearch(array1, 3):1元素9在array1中的位置:Arrays.binarySearch(array1, 9):-9TestArrays执行结果5.2 一维数组一维数组的定义用户也可以改变数组x的值,让它指向另外一个数组对象,或者不指向任何数组对象(如x=null; )。定义时与C/C++区别Java定义数组也可为”数据类型 数组名[](如:int x[])” ,但Java中并不为数组元素分配内存,因此[]中不给数组长度(用new分配)。5.2 一维数组动态内存分配说明用new分配内存的同时,数组的每个元素都会自动赋默认值,整型为0,实数为0.0,布尔型为false,引用型为null。一维数组元素的访问要想使用数组里的元素,可利用数组名和下标来实现。数组元素的引用方式为: 数组名[下标]与C/C++不同的是,Java对数组元素要进行越界检查。 ArrayIndexOutOfBoundsException对于每个数组都有一个属性length指明它的长度,如x.length指出数组x所包含的元素个数。 见例题5.15.2 一维数组一维数组的初始化及应用若在声明数组时进行赋值即初始化称为静态内存分配。数据类型[ ] 数组名={初值0,初值1,…,初值n};如:int[] a = {1,2,3,4,5}; 注意在Java程序中声明数组时,无论用何种方式定义数组,都不能指定其长度。使用new时才能指定例5.2public class App5_2{ public static void main(String[] args) { int i
您可能关注的文档
- 沪科物理八年级全册第6章5科学探究:摩擦力 .ppt
- TPS-6--丰田生产方式--分析工序单位实施省人化.ppt
- 2002春人教部编版七年级历史下册课件:第1单元 整合提升.ppt
- 人教版八年级上册 Unit2 How often do you exercise 重点短语、句型.docx
- 2012年陕西省高校职业教育单独招生考试试题.doc
- 人教版八年级物理上册第三章物态变化复习课 教案设计.doc
- 人教版九年级物理第十八章第二节电功率习题 包含答案.docx
- 宁夏固原市西吉县2019-2020年八年级(上)期中物理试卷 含解析.doc
- 2019-2020年苏教版高三一轮复习:含硫化合物的性质和应用 知识梳理.doc
- 人教版三年级数学下册第五单元例8教案设计.docx
最近下载
- 人教版高中物理必修三第十二章《电能能量守恒定律》解答题专题训练 (12)(含答案解析).docx VIP
- 2025年绵阳市中考化学试题卷(含答案解析).docx
- 药店员工培训试题及答案.docx VIP
- 2025年ACP云计算考试题库.pdf
- 2025年及未来5年高级铝制品项目市场数据调查、监测研究报告.docx
- 集成电路设计与集成系统毕业论文.doc VIP
- 2022年一级造价工程师《建设工程造价案例分析(土木建筑工程)》真题及答案解析.docx VIP
- 规范图集:L13G1_建筑结构常用节点构造.pdf VIP
- 临床药物治疗学及临床药物治疗学复习提纲(免费).doc VIP
- 2025年绵阳市中考语文试题卷(含答案解析).docx
文档评论(0)