如鹏网JAVA培训笔记23晓伟整理.docx
- 文档编号:30724215
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:19
- 大小:1.98MB
如鹏网JAVA培训笔记23晓伟整理.docx
《如鹏网JAVA培训笔记23晓伟整理.docx》由会员分享,可在线阅读,更多相关《如鹏网JAVA培训笔记23晓伟整理.docx(19页珍藏版)》请在冰豆网上搜索。
如鹏网JAVA培训笔记23晓伟整理
写在前边的话:
2015年1月28日如鹏线上训练营第三十五天
一月份又接近尾声了,时间过得可真快。
不知不觉中在如鹏线上培训已经一个多月了,这一个多月收获颇丰。
自己有一个对java编程一点不会的门外汉,开始走上一条java高级编程的道路。
每个人都是幸福的。
只是,你的幸福,常常在别人眼里。
不去期望,失去了不会伤心,得到了便是惊喜。
你现在的付出,都会是一种沉淀,它们会默默铺路,只为让你成为更好的人。
成熟不是心变老,是泪在打转,却依然还能微笑。
乐观一点,开心一点,生命如此短暂,别浪费时间在不值得一提的事情上。
你穷,是因为你缺乏变不可能为可能的勇气和巨大决心,有了野心,你才能克服一切自卑,逼出潜能。
不论你现在家境有多穷,地位有多低,都不要否定自己,都不可以失去凌云之志!
你穷,是因为你什么都不敢想;你穷,是因为你什么都不敢做;你穷,是因为你没有野心!
数组及常用算法:
●数组是用来存储一组相同类型数据的数据结构
●数组变量属于引用数据类型
●数组中的元素可以声明时指定的任何一种数据类型(基本类型和引用类型)
●数组的每个元素有一个对应的索引,可以通过所以索引访问数组中的该元素
●数组被创建好之后,它的大小不能改变,但是数组中的各个元素的值可以被改变。
一维数组的声明:
●一维数组的声明方式:
数据类型[]数组变量名或者是数组类型数组变量名[]
eg:
inta[]
int[]a;
doubleb[];
Mydate[]c;
●java语言中声明数组时不能指定其长度(数组中元素的个数),而需要在数组的创建阶段来指定。
eg:
inta[5];//非法
数组的初始化:
●在创建成功一个数组之后,它将完成如下三个动作:
1.创建一个数组对象
2.在内存中给对象分配存储空间
3.给数组的元素初始化一个相应的数据类型的默认值。
eg:
int[]intArray=newint[10];
System.out.println(“第一个元素默认初始化是:
”+intArray[0]);
●在创建完数组后,可以对数组进行初始化,也就是给数组的元素进行初始化。
数组的静态初始化:
●在数组定义的同时,对数组进行初始化
inta[]={1,3,5,7,9};
Strings[]={“a”,“B”,“P”};
int[]arrys=newint[]{1,2,3};//特殊静态初始化
注意:
1.数组的大小由括号里的元素的个数决定
2.数组的声明不能指定大小
●利用这种方式进行数组的初始化,其实完成了三步动作:
1.数组声明
2.数组创建
3.数组初始化
数组元素的引用:
●数组在定义并为之分配空间后,才可以引用数组中的每个元素
1.数组元素的引用方式:
arrayName[index]
index为数组元素下标(索引),可以是整型常量或整型表达式。
eg:
a[3],b[i],c[6*i]
2.数组元素下标从0开始
长度为n的数组,下标取值范围:
0~(n-1).
●每个数组都有一个属性length指明它的长度,
eg:
arrys.length可以获取数组arrys的长度。
数组元素的引用:
●通过数组名和数组索引来引用一个数组中的元素。
数组的索引从0开始到数组长度减1。
例如:
arr[0]表示数组arr的第一个元素,数组的第二个元素为arr[1]
●可以使用数组的一个属性length来获取数组的长度
●元素的索引必须小于数组的长度,否则会产生数组越界异常。
数组的动态初始化:
●所谓数组的动态初始化,就是将数组的定义和数组的初始化分开进行。
eg:
inta[]=newint[3];
a[0]=1;
a[1]=10;
a[2]=100;
或者
int[]a;
a=newint[10];
for(inti=0;i<10;i++)
{
a[i]=2*i+1;
}
演示:
1.声明一个数组:
int[]arr1;
2.arr1=newint[3];创建数组数组名=new数组类型[个数]
简单数据类型数组的定义:
●在定义数组的时候,系统会给这个数组分配用于存放这个数组的内存空间。
它会在栈内存空间中(Heep)给数组分配一个空间用来存放数组的引用变量。
●在创建简单数据类型的数组的时候,系统会分配合适的空间用来存放该种数据类型的数据的内存空间(分配在堆内存中),并且将这个数组的各个元素赋一个和数组类型匹配的初值。
●以int类型数组为例:
●对于简单数据类型的数组,当对其进行初始化时,会将对应的值赋给对应的各个数组元素。
●引用类型数组的定义和简单类型数据数组的定义相同。
●引用数据类型数组在创建的时候也是首先给数组元素分配内存空间,然后给这些数组元素一个默认的初始值null。
●在进行引用数据类型数组的初始化的时候,和简单数据类型数组的初始化有些不同,因为数组本身是引用类型,而现在数组元素也是引用类型,所以这个时候需要给数组元素所引用的对象也分配内存空间。
●数组在声明时,其数据类型就确定了,且不能修改。
●对于基本数据类型,可以存放比声明的类型表示范围小的数据类型。
int类型数组可以存放short类型数组
●对于引用数据类型,可以存放其子类或实现类的对象(地址),但再次取出时,其表现类型已经是数组声明的数据类型了
增强的for循环:
●缺陷:
遍历数组或集合时无法访问索引(下标)值。
●用途:
只适用于依次遍历显示数组或集合中全部元素的内容。
使用格式:
for(typeelement:
array)
{
System.out.println(element);
}
可变参数:
●JDK5.0中,新增了可变参数:
当定义方法时,传入到方法的参数的个数不固定时,可以使用可变参数来解决。
●在方法声明中,可以使用可变数量的同一个类型的变量
●使用“...”实现
●java编译器将可变参数转换成数组处理(可变数组)
publicvoidmyprint(Object...objs)
{
for(Objecto:
objs)
{//把objs当作数组来遍历
System.out.println(o);
}
}
这里的Arguments参数有两种,你看看eclipse里面。
上面一种是programeArguments,意思是你的程序运行时要用到的参数。
这个参数将放到main函数的args[]数组中。
如果你在程序中用这个数组的话就有用,不用这个数组的话,就没有用。
这个参数也就是我们在DOS里运行时,的那个命令行参数如命令:
javafirstabc.这个abc就是参数。
下面的那个是VMArguments,意思是java虚拟机的参数。
如填上这个:
-version的话就会输出jDK的版本信息。
这个虚拟机的参数还有很多可以在DOS里输出java来查看
常用算法——排序:
1.冒泡排序:
从左到右,由小到大排序,每一轮排序;第一轮完成后,最大值在最右侧;第二轮完成后,次大值在右边第二位...
2.选择排序:
初始时,数组中的有序序列为0个,第一轮结束后,有序序列为1个,依次类推.
3.插入排序:
常用算法——查找:
1.顺序查找:
从第一个元素开始顺序比较查找
publicstaticintserch(int[]a,intnum)
{
for(inti=0;i { if() { returni; } } return-1; } 2.二分法查找 前提条件: 已排序的数组中查找 二分查找的基本思想是: 首先确定该查找区间的中间点位置: intmid=(low+upper)/2; 然后将待查找的值与中间点位置的值比较: 若相等,则查找成功并返回此位置。 若中间点位置值大于待查值,则新的查找区间是中间点位置的左边区域。 若中间点位置值小于待查值,则新的查找区间是中间点位置的右边区域。 下一次查找是针对新的查找区间进行的。 JavaAPI中的排序、查找实现: Java.util.Arrays数组操作工具类 publicstaticvoidsort(int[]a); publicstaticStringtoString(int[]a); publicstaticintbinarySearch(int[]a,intkey)//使用二分搜索法,需要先对数组排序,如果它包含在数组中,则返回搜索键的索引; 否则返回(-(插入点)-1) 插入点被定义为将键插入数组的那一点: 即第一个大于此键的元素索引 如果数组中的元素都小于指定的键,则插入点为: length,返回-a.length-1 如果数组中的所有元素都大于指定的键,则为0,返回-1 注意: 这保证了当且仅当此键被找到时,返回的值将>=0 二维数组的初始化: ●动态初始化: int[][]a=newint[4][5]; int[][]b=newint[3][]; b[0]=newint[2]; b[1]=newint[3]; b[2]=newint[5]; ●静态初始化: int[][]array={{1,2},{2,3},{3,4,5}};4 int[3][2]=array1={{1,2},{2,3},{4,5}};//非法的 数组的复制: ●可以将一个数组变量赋值给另一个数组变量,这个时候,这两个数组变量均指向相同的数组。 通过任何一个变量对数组进行操作,都会影响数组的内容。 int[]a={1,5,4,8,9,12,45}; int[]b=a; JDK6.0在java.util.Arrays类中也新增了复制数组的方法copyOf 系统拷贝: java.lang.System类的静态方法: publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest, intdestPost,intlength); 把数组src从第srcPos项元素开始的length个元素复制到目标数组dest的从destPost项开始的length个位置。 //源数组: int[]source={1,2,3,4,5,6}; //目的数组: int[]dest={10,9,8,7,6,5,4,3,2,1}; //复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储。 System.arraycopy(source,0,dest,0,source,length);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如鹏网 JAVA 培训 笔记 23 整理