JAVA基础学习
前言:千里之行,始于足下,从这里开始吧。
一、数据类型、运算符、API介绍、键盘录入
1、类型转换
(1)自动类型转换
范围类型小的变量,可以直接赋值给范围类型大的变量。
例如:
byte a=12;
int b=a;
像这样最后输出b=12;
(2)表达式的类型转换
在表达式当中,小范围类型的变量会自动转换成当前较大范围的类型再运算
类型大小从小到大的排序为byte char short<int<long<float<double
需要注意的是
表达式的最终结果类型由表达式中的最高类型决定
在表达式当中,byte short char是直接转换成int类型参与运算的。
(3)强制类型转换
类型范围大的变量或者数据不能直接赋值给类型范围小的变量,会报错。
但是可以通过强制类型转换来实现
数据类型 变量2=(数据类型)变量1
int a=20;
byte b=(byte)a;
强制类型转换可能会造成数据丢失(溢出);
例如 浮点型强转成整形,直接丢掉小数部分,保留整数部分返回。
2、运算符
(1)基本算术运算符
+,-,*,/,%
(2)加号作连接符
- 与字符串做+运算时会被当作连接符,其结果还是字符串。
- 能算则算,不能算就在一起。
(3)自增自减运算符
++和–既能放在变量前面也能放在后面。
只能操作变量,不能操作字面量。
- 放在变量的前面,先对变量进行+1或者-1,再拿变量的值进行运算。
- 放在后面,先拿变量的值进行运算,再对变量的值进行+1,-1
(4)赋值运算符
基本赋值运算符:=
扩展赋值运算符+=,-=,*=,/=,%=
扩展赋值运算符隐含了强制类型转换
(5)关系运算符
==,!=,<,>,>=,<=
(6)逻辑运算符
与&,或 |,非!
逻辑异或 ^:如果两个条件都是false或者都是true则结果为false,两个条件不同结果为true。
&和 |无论左边是true还是false,右边都要执行。
- 短路逻辑运算符
&&判断结果与&一致,过程是左边为false,右边不执行。
| |判断结果与|一致,过程是左边为true,右边不执行。
(7)三元运算符
格式:条件表达式?值1:值2;
执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
(8)运算符优先级
3、键盘录入
4、API简述
二、程序流程控制、Random类
1、流程控制语句
2、switch语句
3、while和for语句
4、死循环
5、跳转关键字
2、Random随机数
三、数组、Debug
1、数组的定义
数组适合做一批同种类型数据的存储。
(1)静态初始化数组
数组的基本原理
数组的访问
(2)动态初始化数组
动态初始化数组的元素默认值
2、数组的遍历
3、数组的案例
(1)数组元素求和
(2)数组元素求最大值
(3)猜数字游戏
(4)随机排名
int []code=new int[5];
Scanner a=new Scanner(System.in);
for (int i = 0; i < code.length ; i++) {
int number= a.nextInt();
code[i]=number;
}
Random b=new Random();
for (int i = 0; i < code.length ; i++) {
int index= b.nextInt(code.length);
int temp=code[index];
code[index]=code[i];
code[i]=temp;
}
for (int i = 0; i < code.length ; i++) {
System.out.println(code[i]+"\t");
}
(5)冒泡排序
// 1、定义一个数组,存储一些数据啊
int[] arr = {5, 2, 3, 1};
// 0 1 2 3
// 2、定义一个循环控制比较的轮数
for (int i = 0; i < arr.length - 1; i++) {
// i == 0 比较的次数 3 j = 0 1 2
// i == 1 比较的次数 2 j = 0 1
// i == 2 比较的次数 1 j = 0
// 3、定义一个循环控制每轮比较的次数,占位
for (int j = 0; j < arr.length - i - 1; j++) {
// 判断j当前位置的元素值 是否 大于后一个位置 若较大 则交换
if(arr[j] > arr[j+1]) {
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
// 遍历数组内容输出
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
4、数组的内存图
(1)JAVA的内存分配