一、流程控制
1、顺序结构
程序默认的结构,自上而下的执行
2、选择结构
(1)if语句
(1)if 单选择结构
(2)if-else 双选择机构
(3)if-else if-else 多选择结构
(2)Swich语句
switch(变量){
case 值:要执行的语句;break;
…
default:要执行的语句;
}
3、循环结构
(1)while循环
(2)do-While循环
(3)for循环
(4)增强for循环
break:作用于switch ,和循环语句,用于跳出,或者称为结束。
continue:只作用于循环结构,继续循环用的。结束本次循环,继续下次循环。
return:结束方法的运行。
二、方法
1、方法的定义
访问权限符 返回值 方法名(参数列表){
方法体
}
(1)没有具体的返回值时,返回的返回值类型用void关键字表示。
(2)如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
(3)方法的名称,避免使用到java关键字,并且首字母小写,命名时使用驼峰命名法
骆驼式命名法(Camel-Case)又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例)。正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。
2、访问修饰符

2.1 public
- (1)定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到。
- (2)作用域:public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
2.2 protected
- (1)定义:protected是受保护的,受到该类所在的包所保护。
- (2)作用域:被protected所修饰的成员会被位于同一package中的所有类访问到。同时,被protected所修饰的成员也能被该类的所有子类继承下来。(注意:这里是指同一个package或者不同的package中的子类都能访问)
2.3 default
- (1)定义:default是默认,缺省的,即在成员的前面不写任何的访问修饰符的时候,默认就是友好的。所谓友好的,是对同一package的类友好。
- (2)作用域:同一package中的所有类都能访问。被friendly所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中friendly修饰的成员)
2.4 private
- (1)定义:private是私有的,即只能在当前类中被访问到,它的作用域最小。
- (2)作用域:private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。
3、方法的调用
(1)类名.方法()
(2)对象.方法()
4、方法重载
在一个类中,如果出现了两个或者两个以上的同名方法,只要它们的参数的个数不同,或者参数的类型不同,即可称之为该方法重载了。
5、递归
递归,即自己调用自己(自身调用、递归出口)
递归算法是一种直接或间接地调用自身的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。
6、可变参数
(1)当参数的个数不定时,可以使用可变参数
(2)可变参数的写法:int…a 前面为参数类型,中间加三个点,后面为参数名
(3)使用规则:
可变参数只能位于参数列表的最后一个
可变参数有且只有一个
(4)可变参数的原理为数组,传入参数时,根据传入的参数自动生成匹配的数组类型,数组长度等于传入的参数个数,数组元素为传入的实参
public class Text2 {
public static void main(String[] args) {
int sum = addSum(1,2,3,4,5,6,7,8,9);
System.out.println(sum);
}
private static int addSum(int ...a) {
int add = 0;
//将数组元素(即传入的参数)求和
for (int i = 0; i < a.length; i++) {
add += a[i];
}
return add;
}
}
三、数组
1、数组的定义
用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。
(1)元素类型[] 变量名 = new 元素类型[元素1,元素2…];
(2)元素类型[] 变量名 = {元素1,元素2…};
(3)必须是同一个类型
2、数组的使用
(1)通过数组下标取值
(2)ArrayIndexOutOfBounds 数组越界
(3)for循环遍历
3、二维数组
(1)二维数组可以看作是特殊的一维数组,在声明二维数组的同时用new为二维数组分配内存空间,然后才能访问每个元素
(2)数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组中元素的个数];
4、Arrays工具类
Java中为我们提供了数组相关的一个工具类,使用该工具类可以方便的输出编辑数组。
工具类只有静态方法。常见的有:
(1)toString()
将数组转化为字符串,有多个重载方法,可以支持boolean、float、int、long、short对象数组。
(2) sort()
将数组升序排列,是一个改进的快速排序,比起传统的冒泡,选择排序速度更快
(3)binarySearch(int[] a,int key)
二分法查找数组,返回值为int型
5、排序算法
常见的排序算法有:
