资源描述:
《Java--4数组和字符串》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数组与字符串2.8数组数组的定义数组的内存分配及特点数组操作常见问题数组常见操作数组中的数组2.8.1数组的定义概念同一种类型数据的集合。其实数组就是一个容器。数组的好处可以自动给数组中的元素从0开始编号,方便操作这些元素。格式1:元素类型[]数组名=new元素类型[元素个数或数组长度];示例:int[]arr=newint[5];格式2:元素类型[]数组名=new元素类型[]{元素,元素,……};int[]arr=newint[]{3,5,1,7};int[]arr={3,5,1,7};arr0x00122.8.2数组
2、内存结构int[]arr=newint[4];栈内存newint[4]0x0012堆内存arr[0]arr[1]arr[2]arr[3]2.8.2内存结构Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。栈内存用于存储局部变量,当数据使用完,所占空间会自动释放。堆内存数组和对象,通过new建立的实例都存放在堆内存中。每一个实体都有内存地址值实体中的变量都有默认初始化值实体不在被使用,会在不确定的时间内被垃圾回收器回收方法区,本
3、地方法区,寄存器2.8.3数组操作常见问题数组脚标越界异常(ArrayIndexOutOfBoundsException)int[]arr=newint[2];System.out.println(arr[3]);访问到了数组中的不存在的脚标时发生。空指针异常(NullPointerException)int[]arr=null;System.out.println(arr[0]);arr引用没有指向实体,却在操作实体中的元素时。2.8.4数组常见操作获取最值(最大值,最小值)排序(选择排序,冒泡排序)折半查找(二分查找)2
4、.8.5数组中的数组二维数组[][]格式1:int[][]arr= new int[3][4];定义了名称为arr的二维数组二维数组中有3个一维数组每一个一维数组中有4个元素一维数组的名称分别为arr[0], arr[1], arr[2]给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;格式2:int[][]arr= new int[3][];二维数组中有3个一维数组每个一维数组都是默认初始化值null可以对这个三个一维数组分别进行初始化arr[0]=newint[3];arr[1]=newi
5、nt[1];arr[2]=newint[2];2.8.5数组中的数组格式3:int[][]arr= {{3,8,2},{2,7},{9,0,1,6}};定义一个名称为arr的二维数组二维数组中的有三个一维数组每一个一维数组中具体元素也都已初始化第一个一维数组arr[0] = {3,8,2};第二个一维数组arr[1] = {2,7};第三个一维数组arr[2] = {9,0,1,6};第三个一维数组的长度表示方式:arr[2].length;练习:获取arr数组中所有元素的和。使用for的嵌套循环即可。注意特殊写法情
6、况:int[]x,y[]; x是一维数组,y是二维数组。练习基础练习题进制转换幸运儿String类字符串是一个特殊的对象。字符串一旦初始化就不可以被改变。Stringstr=“abc”;Stringstr1=newString(“abc”);有什么区别?String类部分方法charcharAt(intindex)intlength()char[]toCharArray();intindexOf(Stringstr);booleanendsWith(Stringstr);String[]split(S
7、tringreg);Stringsubstring(intindex);String(char[]arr);练习子串在整串中出现的次数。两个字符串的最大相同子串。对字符串中字符进行自然顺序排序。StringBuffer字符串的组成原理就是通过该类实现的。StringBuffer可以对字符串内容进行增删。StringBuffer是一个容器。很多方法与String相同。StingBuffer是可变长度的。StringBuffer特有方法StringBufferappend(intx);StringBuffer
8、delete(intstart,intend);StringBufferinsert(intindex,Stringstr);StringBufferreverse();JDK1.5出现一个StringBuilder,区别是StringBuffer