JAVA 基础 (二)

循环:反复多次执行一段相同或相似的代码

1.循环三要素:

1)循环变量的初始化
2)循环的条件(以循环变量为基础)
3)循环变量的改变(向着循环的结束变)
循环变量:在整个循环过程中所反复改变的那个数

2.循环结构:

1)while结构:先判断后执行,有可能一次都不执行
2)do…while结构:先执行后判断,至少执行一次
3)for:固定次数循环,应用率最高
break:跳出循环
continue:跳过循环体中剩余语句而进入下一次循环

3.三种循环结构的更佳适用情况:

1)while:”当…”
2)do…while:”直到…”
要素1与要素3相同时首选do…while
3)for:固定次数循环

4.嵌套循环:

1)循环中套循环,一般多行多列时使用,外层控制行,内层控制列
2)执行规则:外层循环走一次,内层循环走所有次
3)建议:嵌套层数越少越好,能一层就不用两层,能两层就不用三层
若业务必须通过三层以上的循环来解决,说明你的设计有问题
4)break只能跳出一层循环

5.程序=算法+数据结构

1)算法:解决问题的步骤/流程(顺序、分支、循环)
2)数据结构:将数据按照某种特定的结构来保存
数怎么存
设计良好的/合理的数据结构会导致好的算法

6.数组:

1)相同数据类型元素的集合
2)是一种数据类型(引用类型)
3)数组的定义:

1
int[] arr = new int[10];

4)数组的初始化:

1
2
3
4
5
6
int[] arr = new int[4]; //四个元素 默认值都为0
int[] arr = {1,4,6,8}; //1,4,6,8
int[] arr = new int[]{1,4,6,8}; //1,4,6,8
int[] arr;
arr = {1,4,6,8}; //编译错误,此方式只能声明同时初始化
arr = new int[]{1,4,6,8}; //正确

5)数组的访问:

1
2
3
4
5
6
7
8
9
10
11
5.1)通过(数组名.length)可以获取数组的长度(元素的个数)
int[] arr = new int[4];
System.out.println(arr.length); //元素个数为4个
5.2)通过下标/索引来访问数组中的元素
下标从0开始,最大到(数组的长度-1)
int[] arr = new int[3];
arr[0] = 100; //给第1个元素赋值为100
arr[1] = 200; //给第2个元素赋值为200
arr[2] = 300; //给第3个元素赋值为300
//arr[3] = 400; //数组下标越界异常
System.out.println(arr[arr.length-1]); //输出最后一个元素的值

6)数组的遍历:

1
2
3
4
5
6
7
8
9
10
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}

7)数组的复制:

1
2
3
1)System.arraycopy(a,1,a1,0,4);
2)int[] a1 = Arrays.copyOf(a,6);
a = Arrays.copyOf(a,a.length+1); //数组的扩容

8)数组的排序:

1
1)Arrays.sort(arr);

7.方法:函数、过程

1)封装一段特定的业务逻辑功能
2)尽可能独立,一个方法只干一件事
3)方法可以被反复多次的调用
4)减少代码的重复,有利于代码的维护,有利于团队的协作
5)方法的定义:
修饰词 返回值类型 方法名(参数列表){
方法体
}
6)方法的调用:
1)无返回值: 方法名(有参传参);
2)有返回值: 数据类型 变量 = 方法名(有参传参);
7)return 用法:
1)return; //1)结束方法的执行
2)return 值; //1)结束方法的执行 2)返回结果给调用方

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L
  • 例子: long a = 100000L,Long b = -200000L。
    “L”理论上不分大小写,但是若写成”l”容易与数字”1”混淆,不容易分辩。所以最好大写。

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f
  • 浮点数不能用来表示精确的值,如货币;

double:

  • double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
  • 浮点数的默认类型为double类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false

char:

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符;