------- android培训、java培训、期待与您交流! ----------
———————————————————————————————————————————————
9、函数
函数也称为方法。
非静态方法可以调用静态方法
|--格式:
修饰符 返回值类型 函数名(参数类型 形参1,参数类型形参2,...){
执行语句;
return 返回值;
}
void类型的函数,没有具体的返回值。
函数的出现提高了代码的复用性
注意:
函数中只能调用函数,不能定义函数
定义函数时,函数的结果应该返回给调用者,交由调用者进行处理。
定义函数的两个明确:
|--函数的返回值类型
|--参数列表
|——函数的重载
|--参数类型
|--参数个数
注意:函数的重载和返回值无关;
如果函数出现调用的不确定性,编译失败。
10、数组
同一类型数据的集合,其实就是一个容器
|--格式:
格式一: 类型 []数组名 = new类型[数组长度];
内存的划分:
|--寄存器
|--本地方法区
|--方法区
|--栈内存
存储的都是局部变量
|--堆内存
存储的是对象(数组也是Object对象)
|——堆里边的变量在创建的时候都会默认初始化
boolean初始化为false
int类型初始化为0
|——堆内存中的对象使用过,就会变成垃圾。
JVM的垃圾回收机制会不定时启动,回收堆内存的垃圾
|——数组角标越界,编译不会出错,运行出错。
当引用没有任何实体指向时,会发生空指针异常。
格式二: 类型 []数组名 = new类型[]{.....};
|-- int []arr = new int[]{1,2,4,5};
int []arr ={1,2,3,4};
数组的遍历:
数组提供了一个获得数组长度的属性length。
排序:
|--选择排序
每次比较得到最小(大)的值。
void selectSort(int[]arr){
for(int i=0;i
for(int j=i+1;j
if(arr[i]>arr[j]){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
|--冒泡排序
相邻元素比较。
void bubbleSort(int[]arr){
for(int x=0;x
for(int y=0;y
if(arr[y]>arr[y+1]){
int tmp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = tmp;
}
}
}
}
通用swap方法:
void swap(int []arr,int x,inty){
int tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
}
|--排序的性能问题。
为了尽可能减少操作。
void selectSort_2(int[]arr){
for(int x=0;x
int num = arr[x];
int index = x;
for(int y=x+1;y
if(arr[x]>arr[y]){
num = arr[y];
index = y;
}
}
if(x!=index){
swap(arr,x,index);
}
}
}
11、查找
1、遍历
2、二分查找(前提是数组是有序的)
if(key>arr[mid])
min = mid +1;
if(key
max = mid -1;
mid = (min +max)>>1;
int halfSearch(int []arr,intkey){
int min,max,mid;
min = 0;
max =arr.length-1;
System.out.println("Runningmax");
while(min<=max){
System.out.println("Runningwhile");
mid =(min+max)>>1;
if(key>arr[mid]){
min = mid + 1;
}
else if(key
max = mid - 1;
}
else
return mid;
}
return -1;
}
11、进制转换(十六进制)
0000-0000 0000-0000 0000-00000011-1100
&0000-00000000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-00000000-1100
>>>0000-0000 0000-00000000-0000 0011
&0000-00000000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-00000000-0011
for(intx=0;x<8;x++){
int tmp = num &15;
System.out.println(tmp);
num = num>>>4;
}
12、二维数组
数组的创建在堆内存中完成
二维数组一定要指定大小,但是对于其中的一维数组可以不明确其大小
格式一:
int [][]arr = new int[3][2];
int [][]arr = new int[3][];
arr[0] = newint[4];
arr[1] = new int[2];
arr[2] = newint[1];
引用型数据类型默认初始化都为null
格式二:
int [][]arr ={{1,24,2},{21,52,3},{1}};