数组与方法

一、数组:引用类型  一堆相同类型的数据集合

一维数组:

1、数组的声明:  数据类型名[  ]   变量名 ;    数据类型名  变量名[]  后者不推荐使用

2、数组的初始化:

(1)静态初始化:  eg :  int[ ]  a ={1,2,3,4 };   静态变量不能再被赋值新的静态值

(2)动态初始化:

1)  eg:   int [ ] a=new  int  [length];   会有length 个默认值

整形:0   浮点型  0.0  字符型: '  \u0000 '   布尔类型:false   引用类型:null

2) eg :  int [ ] a =new  int [ ]{1,2,3,4}  动态的变量也只能赋值为新的动态

3、数组的元素:元素是指里面的数据

4、数组的下标:元素的位置是从0到length-1;   数组的长度(元素的个数)  int num=变量名.length;

5、数组元素的访问 (存取)   变量名[下标]

6、数组的遍历  for循环输出

7、数组异常:  ArrayIndexOutOfBoundException  数组下标越界异常     

二、二维数组:

1、声明格式:数据类型  数组名[][];

数据类型  数组名[][] =new  数据类型[行的个数][列的个数];

2、数组初始化:

静态初始化:数据类型  数组名[][]={  { 第一行初值  },{  第二行初值 },{   ...  }  };

动态初始化:先声明,再逐个赋值

多维数组   数据类型  数组名[][][];   依次类推

三、引用数据类型: 所声明的变量里面存的不是具体数据,是 其所在内存中经过计算所得的一个地址。

jvm内存管理结构:其中有两个部分  

栈:存的是方法内部的局部变量,先进后出的特点,八大基本数据类型的值,

如果直接给变量赋值,那么就直接存在变量中

堆:存的是引用类型的数据(对象)

数组之间的变量的赋值

址传递:引用变量之间的赋值

值传递:基本数据类型变量之间的赋值

四、Arrays:数组工具类

(1)Arrays.equals(array1,array2): 比较两个数组是否相等

(2)Arrays.sort(array):对数组array的元素进行升序排列

(3)Arrays.toString(array):

功能:把数组里的元素拼接成字符串    "[元素1,元素2,………………,元素n]"

system.out.println(Arrays.toString())

(4)Arrays.fill(array,val):把数组中所有的元素赋值为val

(5)数组的复制:指的是堆里的对象进行复制。数组对象一经确定,就不能被不改变长度

系统数组复制法:System.arraycopy(src,start1,des,start2,length);
         scr:源数组,表示你要复制的数组
         start1:从源数组开始复制元素的下标
         des:目标数组,表示要复制到的那个数组
         start2:表示目标数组从哪个下标开始进行
         length:表示要复制的长度

 数组的扩容,缩容:Arrays.copyOf(src,newlength);
  src:源数组,要复制的那个数组
 newlength:表示扩容或者是缩容到多少长度

 注:数组的扩容与缩容是会产生新数组的,底层是系统数组复制法

六、数组的排序

冒泡排序:

for(int i =0;i<array.length-1;i++){

       for(int j=0;j<array.length-1-i;j++){

              if(array[ j ]<array[ j+1]){

                    int  temp=array[j];//临时变量,备份数据

                    array[ j ]=array[ j+1];

                     array[j+1]=temp;

              }

       }

}

======================================================

方法:方法就是一段可重复调用的代码段,有些书会把方法称为函数,其实两者没有什么区别,是同样的概念,只是称呼方式不同。

方法的定义格式:修饰词  返回值类型 方法名(形式参数){

   方法逻辑

   [return   表达式]

}  //中括号主体为方法

定义位置:在类体中,方法之间并列存在

修饰词:public   protected  default  private

返回值类型:

1、void:   无返回值类型,空返回值类型

2、数据类型(包含基本数据类型,引用类型),方法逻辑结束以后,必须有return关键词,

return后面必须跟着返回值类型的一个数 

return:表示方法结束

方法名:与变量名的命名规则一样,定义类时全部单词的首字母必须大写,定义方法,第一个单词首字母小写,之后的每个单词的首字母大写。

形式参数:一种形式,必须强调类型。带上参数,会让方法更加的灵活 。

方法的调用(两种方法):

void类型的方法:方法名(有参传参)

有返回值数据类型的方法:返回值类型  变量= 方法名(有参传参)

方法的重载:在同一个类中,方法名相同,参数类型列表不同,与修饰词、返回值类型无关。

注:在调用期间,编译器会根据传入的参数个数、类型,进行匹配方法区的相应方法,找到就调用里面的逻辑,没找到,就会报编译错误,编译不了Class文件。

猜你喜欢

转载自blog.csdn.net/wyq15004350208/article/details/81276655
今日推荐