数组
int[] arr = {1,2,3,4};
int[] arr = new int[]{1,2,3,4};

int[] arr = new int[5];{0,0,0,0}

数组的遍历/迭代
数组下标: 0 ~ length - 1

方法:
主方法
public static void main(String[] args){}
修饰符 + 返回值类型 + 方法名 + (方法参数) + {方法体}

访问修饰词: public static
返回值的类型: void /char/int/boolean/String/int[]
方法名: main / 随意 -> 可读性好
方法的参数(临时变量):
1. 类型 + 变量名
2.可以放引用数据类型和基本数据类型
3.参数可以不放,可以有多个,类型不限
{}: 方法体

方法的使用:
1)有返回值的方法,必须使用return返回
2)return表示方法结束,没有返回值类型的也可以使用return

方法参数:
基本数据类型作为参数: 值传递
引用数据类型作为参数: 传递的是引用 - 地址值

猜字母游戏
随机5个字母: qwert
用户猜字母: awecb
比较: 字母正确个数:2 位置正确:2

常用API - 都是类
Scanner
nextInt()
nextDoble()
next(): 获取字符串,遇到空格或者回车结束
nextLine():获取一行字符串,遇到回车结束
System
print(): 打印,不换行
println() 换行打印
Math
Math.random(): 获得[0,1)的随机值
Math.pow(double d1, double d2): 获得d1 的d2次幂
String
str.charAt(index); 获得index索引对应的字符
Arrays
Arrays.toString():读取数组
Arrays.sort():数组的排序

数组的排序
选择排序: 每一轮都会选出一个最大的,放在最后面
冒泡排序: 每一轮都比较相邻的两个元素,小的放前面,大的放后面
插入排序: 把数组分成两部分, 前一部分已经排好的, 另一部分挨个访问,把访问到的元素插入到前一部分的合适的位置
1234 8590

冒泡排序原理分析:
数组:[9, 7, 3, 6, 1] length = 5

i: int i = 0; i < length - 1; i++
j: int j = 0; j < length - 1 - i; j++

第一轮: i = 0 arr[j] > arr[j+1]
7, 9, 3, 6, 1 j = 0 arr[0] arr[1] 交换
7, 3, 9, 6, 1 j = 1 arr[1] arr[2]
7, 3, 6, 9, 1 j = 2 arr[2] arr[3]
7, 3, 6, 1, 9 j = 3 arr[3] arr[4]

第二轮: i = 1
3, 7, 6, 1, 9 j = 0
3, 6, 7, 1, 9 j = 1
3, 6, 1, 7, 9 j = 2

第三轮: i = 2
3, 6, 1, 7, 9 j = 0
3, 1, 6, 7, 9 j = 1

第四轮: i = 3
1, 3, 6, 7, 9 j = 0

选择排序: 每一轮都会选出一个最大的,放在最后面
数组:[9, 7, 3, 6, 1] length = 5

第一轮: 1, 7, 3, 6, 9
int index = 0;
1: 比较 arr[1] 和 arr[index] ,记录下标最大值 index = 0
2: 比较 arr[2] 和 arr[index],如果arr[2]大进行替换,记录下标最大值 index = 0
3: 比较 arr[3] 和 arr[index],如果arr[3]大进行替换,记录下标最大值 index = 0
4: 比较 arr[4] 和 arr[index],如果arr[4]大进行替换,记录下标最大值 index = 0
index 和当前最后一位(length - 1)进行交换
i:0
j: 1 ~ 4

第二轮: 1, 6, 3, 7, 9
1: 比较arr[0] 和 arr[1] ,记录下标最大值 index = 1
2: 比较 arr[2] 和 arr[index],如果arr[2]大进行替换,记录下标最大值 index = 1
3: 比较 arr[3] 和 arr[index],如果arr[3]大进行替换,记录下标最大值 index = 1
index 和 当前最后一位(length -1 -1)进行交换

i: 1
j: 1 ~ 3

第三轮: 1, 3, 6, 7, 9
1: 比较arr[0] 和 arr[1] ,记录下标最大值 index = 1
2: 比较 arr[2] 和 arr[index],如果arr[2]大进行替换,记录下标最大值 index = 1
index 和 当前最后一位(length -1 -2) 进行交换
i: 2
j: 1 ~ 2

第四轮: 1, 3, 6, 7, 9
1: 比较arr[0] 和 arr[1] ,记录下标最大值 index = 1
index 和 当前最后一位(length -1 -3)进行交换

i: 3
j: 1

i: int i = 0; i < legth - 1; i++
j: int j = 1; j < length - i; j++
当前最后一位:length - 1 -i


复习:

1.三个概念: JVM JRE JDK
命令: java javac

2.变量
使用前: 声明 + 初始化

3.数据类型: 基本数据类型 + 引用数据类型
基本数据类型
整型
浮点型
字符型 Unicode字符集 1字符 = 2字节
布尔类型
4.运算符
赋值运算符
算数运算符
比较运算符
逻辑 & && | ||
位 & | ^
位移 >> >>>
三目

5.逻辑控制语句
顺序
分支 -> 条件(返回的一定是boolean)判断
if()
if() - else
if() - else if() - else

while(){
		switch(条件) - case
		 1: break;

		return;
	}
	
	continue: 结束当前循环,继续下一次循环

循环:
	for()
	while()
	do - while()

方法的执行过程

java String数组 数字 排序 java数组字母排序_数据结构


数组作为方法参数

java String数组 数字 排序 java数组字母排序_算法_02