1.函数
1.函数的重载
1.函数的名字一样,但函数的参数个数不一样或者对应索引位置的参数类型不一样就是重载。(与函数返回值类型无关)
(1)public static void add(int a,int b,in c)
(2)public static void add(int x,int y)
(3)public static int add(int x int y, int z)
(4)public static int add(double x,int z)
(1)与(2)重载 参数个数不一样
(1)与(3)不是重载
(2)与(3)重载 参数个数不一样
(3)与(4)重载 对应参数类型不一样
2.数组
1.内部存储理解
int [] arr=new int[8];
arr是数组类型的变量,由于数据所需的空间大,
因此,我们new出来的数组其实是存储在堆区当中的,
但在栈区中同样存储arr这个变量,这个变量里放着的是这个数组的首地址。
通过这个地址,我们就可以找到这个数组,因此称这个arr变量为引用。
我们讲过引用数据类型包括:
1.数组
2.接口
3.类
这些引用数据类型,都是在堆区存储数据的,但对应的在栈区也存储了相应的数据的
首地址。
2.实列小运用:
class Array{
public static void main(String [] args){
// int[] arr=new int[8];
// for (int i=0;i<arr.length;i++){ //give value to every element of array
// arr[i]= i*i;
// }
char[] chararray=new char[8];
for(int i=0;i<chararray.length;i++){
if(i==0)
chararray[i]='a';
else if(i==1)
chararray[i]='b';
else if(i==2)
chararray[i]='c';
else
chararray[i]='d';
}
arrayprint(chararray);
}
//print arrar
public static void arrayprint(char[] arr){
for (int j=0;j<arr.length;j++)
System.out.println(arr[j]);
}
}
3.数组
1.数组实例
1)求极值
class Array{
public static void main(String [] args){
int[] arr={1,73,88,37,38,18,37,87,1999,28283883};
System.out.println("max value is");
int result=max(arr);
System.out.println(result);
}
public static int max(int[] arr){
int maxvalue=-1;
//顺序不能颠倒,数组的引用会出现空,也就是null。需要先判断是否为null,否则求不出长度。
if(arr!=null&&arr.length!=0){
for(int i=0;i<arr.length;i++){
if(arr[i]>maxvalue){
maxvalue=arr[i];}
}
}
return maxvalue;
}
}
2)冒泡排序
class Array{
public static void main(String [] args){
int[] arr={1,73,88,37,38,18,37,87,1999,28283883};
System.out.println("the range is");
max(arr);
}
public static void max(int[] arr){
int temp;
if(arr!=null&&arr.length!=0){
//round
for(int i=0;i<arr.length;i++){
//times
for(int k=0;k<i-1;k++)
//buble sort
if(arr[k]>arr[k+1]){
temp=arr[k];
arr[k]=arr[k+1];
arr[k+1]=temp;}
}
//print the number
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);}
}
}
}
3).数组倒置
class Array{
public static void main(String [] args){
int[] arr={1,73,88,37,38,18,37,87,1999,28283883};
System.out.println("inversion is");
reverseArr(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
public static void reverseArr(int[] arr){
//inversion,find the center first ,then,the value before the center and value after the center exchange
for(int i=0;i<arr.length/2;i++){
int temp=arr[arr.length-1-i];
arr[arr.length-1-i]=arr[i];
arr[i]=temp;
}
}
}