注释标识符
规则:不能以数字开头,且区分大小写,不能包含空格,不能是Java关键字和保留字,
命名建议:
数据类型基本数据类型(四类八种)
数据类型
关键字
取值范围
整数类型
byte
-128 到 127
short
-32768 到 32767
int(默认)
-2^31 到 2^31-1
long
-2^63 到 2^63-1
浮点类型
float
-3.403E38 到 3.404E38(有效位数7-8位)
double(默认)
-1.798E308 到 1.798E308(有效数字16-17位)
字符类型
char
0 到 65535
布尔类型
boolean
true,false
注意:根据JVM规范,在内存中boolean当作int处理,占4个字节,boolean数组当成byte数组处理,一个boolean元素占1个字节
引用数据类型
String数据类型间的转换隐式转换(自动转换)计算时,小的提升大的再计算强制转换
//强制转换的语法:目标数据类型 变量名 = (目标数据类型)(被转换的变量变量名);
int a = 10;
byte m = (byte)a;
//注意:在进行计算时,byte会先转换为int再计算
byte a = 3; byte b = 4;
byte c = a + b; //报错
byte c = (byte)a + (byte)b; //报错
byte c = (byte)(a+b); //正确写法
//整数默认为int类型,即使其值超过int,系统也不会把其转为long类型,
//所以如果希望把其当作long类型处理,需要加L后缀
long num = 123456789123456789L;
//小数形式则默认为double,如果希望把其当作float类型处理,需要加F后缀
float num = 58.0F;
常量优化机制
在给一个变量赋值的时候,如果“=”的右边全部是常量那么在编译阶段会把右边的结果赋值给左边的变量;
如果范围不超过左边的变量类型的范围(或者说属于左边的范围)那么就会赋值成功如果超过就会赋值失败;
右边如果存在变量,则不会触发常量优化机制。
//编译时,会将3+4计算出结果,并且会自动判断该结果是否在类型取值范围内。在则编译成功,不在则编译失败
byte num = 3 + 4;
//整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
System.out.println(10 / 3); // 输出结果为3
System.out.println(10 /3.0); // 输出结果为3.333...
赋值运算符关系运算符逻辑运算符三目运算符位运算
if (条件语句){…}
if (条件语句){…} else {…}
if (条件语句){…} else if (条件语句){…}else{…}
Switch
switch(表达式){
case 值1: 语句块1; break;
…
case 值n: 语句块n; break;
default: 语句块n+1; break; //所有值都不匹配则执行default语句体部分
}
//需要注意的是:如果switch语句中,case省略了break语句, 就会开始case穿透.
//当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行
//直到看见break,或者将整体switch语句执行完毕,才会结束。
switch(week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("您的输入有误");
break;
}
For
//1.先执行初始化语句,
//2.再执行条件判断语句,
//3.如果是false,则循环结束,如果是true,则执行循环体语句,再执行循环控制语句,最后回到第2步继续循环
for(初始化语句 ; 条件判断语句(布尔表达式); 循环控制语句) {
//循环体语句
}
While
//1.先执行初始化语句,
//2.再执行条件判断语句,
//3.如果是false,则循环结束,如果是true,则执行循环体语句,再回到第2步继续循环
初始化语句;
while(条件判断语句){
循环体语句;
(循环控制语句)
}
Do…While
//1.先执行初始化语句,再执行循环体语句
//2.再执行条件判断语句,
//3.如果是false,则循环结束,如果是true,则执行循环体语句,再回到第2步继续循环
初始化语句;
do{
循环体语句;
(循环控制语句)
} while(条件判断语句);