1.字面量
数据在程序中的书写格式。
(字符:有且仅能一个字符)
System.out.println('\n'); // \n 代表的是换行的意思
System.out.println('\t'); // \t 代表的是一个tab(缩进)
2.变量
记住程序要处理的数据。
// 格式:数据类型 变量名称 = 数据;
// int age 18
int age = 18; // 变量名称首字母小写:age
3.关键字,标识符
关键字:java语言自己用到的一些词,如:public class...
标识符:我们写程序时起的一些名字,如:类名,变量名
⭐变量名:首字母小写,满足驼峰模式
⭐类名:首字母大写,满足驼峰模式
4.数据类型
⭐基本数据类型:
①整型:byte short int long
②浮点型(小数):float double
③字符型:char
④布尔型:boolean
⭐引用数据类型:String类型
5.类型转换
让不同类型的数据能够进行运算或赋值
①自动类型转换:
低精度→高精度(例如从整型到浮点型的转换)
char可以转换为int类型
//自动类型转换:int转为double
int n = 10;
double b = n;
System.out.println(b);// 10.0
⭐表达式的自动类型转换:
表达式的最终结果类型由表达式中的最高类型决定
byte,short,char是直接转换成Int类型参与运算的
②强制类型转换:
高精度→低精度
// 强制类型转换:double转为int,截断小数保留整数
// 强制类型转换快捷键:alt+回车 再回车
double d = 10.5;
int i = (int)d;
System.out.println(i);// 10
6.运算符
①基本的算术运算符
⭐/:两个整数相除,结果还是整数(因为最高类型是整数)
⭐%:取余
⭐+:与字符串运算的时候是用作连接符的,结果依然是一个字符串
②自增自减运算符
只能操作变量,不能操作字面量
// 报错
System.out.println(2++);
⭐放在变量前面:先对变量进行+1,-1,再拿变量的值进行运算
⭐放在变量后面:先拿变量的值进行运算,再对变量的值进行+1,-1
// 先加后运算
int o = 10;
int w = ++o;
System.out.println(w);// 11
System.out.println(o);// 11
// 先运算后加
int q = 5;
int r = q++;
System.out.println(q);// 6
System.out.println(r);// 5
③关系运算符
⭐>=:大于或者等于
⭐<=:小于或者等于
⭐==:等于
⭐!=:不等于
布尔值判断真假
④逻辑运算符
⭐&和&&:
全部都是true,结果才是true;有一个是false,结果为false
&&:前一个为false,后一个不进行判断了
⭐|和||:只要有一个是true,结果就是true
||:前一个为true,后一个不进行判断了
⭐非(!):你真我假,你假我真
⭐逻辑异或(∧):前后条件结果相同,为false;前后条件结果不同,为true
⑤三元运算符
格式: 条件表达式?值1:值2;
流程:首先计算关系表达式的值,如果值为true,返回值1;如果为false,返回值2
7.静态初始化数组
定义数组的时候,直接给数组赋值
①定义格式
// 静态数组格式:
// 数据类型[] 数组名 = {元素1,元素2...};
int[] ages = {12,24,36};
// 数据变量名中存储的是数组在内存中的地址
System.out.println(ages); // [I@4eec7777
②数组的访问
数组名称[索引]
③数组的长度属性:
数组名.length
④数组的最大索引:
数组名.length-1
// TODO 掌握数组的访问
int[] arr = {12,24,36};
// 0 1 2
// 1.访问数组的全部数据
System.out.println(arr[0]); // 12
// 2.修改数组中的数据
arr[0] = 66;
System.out.println(arr[0]); // 66
// 3.访问数组的元素个数 数组名.length
System.out.println(arr.length); // 3
//4.:获取数据的最大索引 arr.length - 1 (前提是数组中存在数据)
System.out.println(arr.length - 1); // 2
⑤数组的遍历
一个一个的访问一遍容器中的数据
int[] ages = {12,24,36};
for (int i = 0; i < ages.length; i++) {
System.out.println(ages[i]); // 12 24 36
}
8.动态初始化数组
定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度
定义格式
// 定义格式: 数据类型[] 数组名 = new 数据类型[长度]
int[] ages = new int[3] ;//ages = [0,0,0]
// 赋值
ages[0] = 12;
System.out.println(ages[0]); // 12
9.分支结构
①if分支:可以根据条件,选择执行某段代码
// TODO 掌握if分支三种形式的用法和执行流程
// 需求1:测量用户体温,高于37度就报警
double t = 38.9;
if ( t > 37 ){
System.out.println("体温异常");// 体温异常
}
// 需求2;发红包:余额99元,发出90元。余额够,发红包;余额不足则需提示
double money = 82;
if (money >= 90){
System.out.println("发红包!");
}else {
System.out.println("余额不足"); // 余额不足
}
// 需求3:绩效系统根据员工打分输出对应的绩效级别
//0-60;D 60-80:C 80-90:B 90-100:A
int score = 78;
if (score >= 0 && score < 60){
System.out.println("D");
} else if (score >= 60 && score < 80) {
System.out.println("C"); // c
}else if (score >= 80 && score < 90) {
System.out.println("B");
}else if (score >= 90 && score <= 100) {
System.out.println("A");
}else {
System.out.println("输入错误");
}
②switch分支:通过比较值来决定执行哪条分支
// TODO 掌握switch的写法,理解其执行流程
String week = "周日";
switch(week){ // 周日 777
case "周一":
System.out.println("111");
break;
case "周二":
System.out.println("222");
break;
case "周三":
System.out.println("333");
break;
case "周四":
System.out.println("444");
break;
case "周五":
System.out.println("555");
break;
case "周六":
System.out.println("666");
break;
case "周日":
System.out.println("777");
break;
default:
System.out.println("其他");
}
10.循环结构
①for循环:控制一段代码反复执行多次
②while循环
③do-while循环
④死循环
⑤循环嵌套:外部循环每循环一次,内部循环会全部执行完一轮
11.跳转关键字
// TODO 掌握Break和Continue的作用
// Break:跳出并结束当前所在循环的执行
for (int i = 1; i <= 5 ; i++) {
System.out.println(i);
if (i==3){ // 1 2 3
break;// 遇到break,整个循环就结束了。跳出循环执行后续的代码。
}
}
//Continue:跳出当前循环的当次执行,直接进入循环的下一次执行
for (int i = 1; i <= 5 ; i++) {
if (i == 3){ // 1 2 4 5
continue;// 遇到continue,当次循环结束,继续进行下一轮的循环
}
System.out.println(i);
}