方法种类-重载重写-控制符-数组-选择冒泡排序-主要是数组和数组的工具类

1.java中方法的格式:
在这里插入图片描述

我的总结:

只要上述有一个不一样,那么这个参数列表就不一样!对于方法而言,即使同名也不是同一个方法
,也就是下面讲的方法签名

2.方法里的属性

访问控制符: 访问控制符限定方法的可见范围,或者说是方法调用的范围。方法的访问控制符有四种,
按可见范围从大到小依次是: public protected 无访问控制符 private。其中无访问控制符不书写即可
。具体的范围在后续有详细的介绍

形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型 void。

方法签名:方法名和方法的参数列表能(能区别方法)//最关键的
java语言中调用方法:对象名,方法名(实参列表)
实参的数目,数据类型和次序必须和所调用方法声明的形参列表匹配
return 语句终止方法的运行并指定要返回的数据

3.方法特点

它可以实现独立的功能;
必须定义在类里面;
它只有被调用才会执行;
它可以被重复使用;
方法结束后方法里的对象失去引用;

如何定义一个功能,并通过方法体现出来:
1.明确该功能运算后的结果,明确返回值类型
2.明确在实现该功能过程中是否有未知内容参与运算,确定参数列表

4.什么是方法的重载(overload)
概念:

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。

存在的原因:
屏蔽了一个对象的同一类方法由于参数不同所造成的差异。

特点:
与返回值无关,只看参数列表

我的总结: 方法重载,方法名相同,但是参数列表不一致!和方法重写不一样,方法重写方法名和参数列表都必须
一样。

5.数组简介

数组(Array) 是java语言中内置的一种基本数据存储结构,通俗的理解,就是一组数的集合,目的是
用来一次性存储多个数据。数组是程序中实现很多算法的基础,可以在一定程序上简化代码的书写。

备注:
1.数组的好处: 数组里的每个元素都有编号,编号从0开始,并且依次递增,方便操作这些元素
2.使用java数组:必须先声明数组,再给该数组分配内存
3.数组对应在内存中是一段连续空间
4.数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型

6.一维数组的声明和初始化:

一维数组:可以理解为一列多行,类型相同的数据,其中每个数据被称为数组元素;
一维数组的声明方式;
type varNamep[] 或 type[] varName(推荐)

数组的长度一旦确定,就不能改变,也就数组是定长的;

我的总结:java语言声明数组的时候不能指定其长度(元素的个数)

初始化:
java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值

数组初始化的两种方式:

静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式 数组名 = new 数组类型[] {元素1};
简化语法 : 数组名 = {1 ,2, 3}

动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式 数组名 = new 数组类型【数组长度】

我的总结:
不能静态和动态初始化同时使用;
也就是说不能同时指定数组的长度和元素;

7.数组的使用:

java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推

常用操作:
给数组元素赋值
数组名【索引】 = 数组类型的值 int【1】 = 1;

访问数组元素
数组类型 变量 = 数组名【索引】;
得到数组的长度
int len = 数组名.length //length是数组的属性
遍历数组(备注:length属性和循环语句)
数组元素的索引返回(0=length-1)
例子:判断数组是否重复

冒泡排序 总之就是换位置

选择排序

8.分配内存空间

数组名 = new 数据类型【数组长度】
new 关键字用来实现为数组或对象分配内存(堆内存)
数组具有固定的长度。获取数组的长度:数组名.length

定义数组+分配内存空间
数据类型【】数组名 = new 数据类型【数组长度】
定义数组时不指定长度,分配空间时指定数组长度:如 String cities[] = new String[6];

数组元素:
数组名【下标值】;
数组下标从0开始 scores【0】=75;

数组的内存分配 栈内存 和 堆内存
如定义一个数组 int【】scores将在栈内存中为 scores分配内存空间,其值是一个不确定的值。
当执行语句 scores = new int[5] 时,将在堆拿内存分配连续5个空间,每个空间4个字节,用于存放
整形数据,其初始值为0,然后将该段空间首地址,也就是第一个元素的地址,比如 0 *3000 ,赋值给scores变量。
该地址相当于一个指针,指向堆内存中分配的空间。此时堆内存中分配的5个空间可以分别使用 scores【0】一直到
scores【4】 来表示,当执行4个赋值语句时,分别用指定值填充到对应元素位置,如果此时将null值赋值给scores时
scores变量将不再指向任何位置,此时堆内存中分配的空间就变成了垃圾,由垃圾回收器在某一时间进行回收。

在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间,当超过变量作用范围后,
自动回收

我的总结:初始化=定义数组+分配空间+赋值

9.二维数组

二维数组:(其实是一个一维数组,只是它的每一个元素又是一个一维数组)
可以看做是一张表格

初始化:
动态初始化
int【】【】 arr= new 【3】【2】;
定义了一个二维数组 ,其中有三个一维数组 ,每一个一维数组中有2个元素

静态初始化
int【】【】 arr = new int【】【】{{1,2},{2,3},{2,3}};
或者去掉new简写

10.操作数组的工具类

static int binarySearch(type[]a, type key) 使用二分搜索法来搜索key元素再数组中的索引;若
a数组不包括key,返回负数(该方法必须已按升序排列后调用)

static int binarySearch(type[] a ,int fromIndex,int toIndex,type key)使用二分搜索法来搜索key元素
在数组中formindex到toindex的索引;若 a 数组不包括key,返回负数。
(该方法必须已按升序排列后调用)

调用此方法 key值为 数组的值, 如果有返回下标

static boolean[] copyOf(type[] original,int new Length)复制指定的数组

static boolean copyOfRange(type[] original,int from,int to) 将数组的指定范围复制到一个新数组
form参数表示 截取前 to 表示后

static boolean equals(type[]a,type[]a2)如果两个数组长度相等和元素一一相等,则返回true

static void fill(type a, type val) 将 a 数组所有元素都赋为 val

static void fill (type a,int fromIndex,int toIndex, type val) 将数组从fromIndex 到 toIndex 索引之间的元素都
赋值为val

static void sort(type []a) 对指定的数组按数字升序进行排序

static void sort(type[] a, int fromIndex, int toIndex) 对指定数组的从 formIndex 到 tiondex 索引
之间的元素按数字升序进行排序

static String toString(type []a) 返回指定数组内容的字符串表示形式。多个数组元素之间用英
文逗号或空格隔开。

使用数组工具类可以节省时间,提高效率,注意查阅api

11.java5新特性对数组的支持

增强for循环 》 foreach

for(参数类型 参数名:数组名){
代码块
}

代码交流 2021