220217
类型转换
-
将数据类型中,取值范围小的数据给取值范围大的类型赋值,直接赋值
//小的给大的,直接给 int a = 10; double b = a; System.out.println(b)//输出结果为10.0 //小的数据类型和大的数据类型运算,小的会提升为大的之后,再进行运算 int a = 10; double b = 12.3; double c = a + b;short和char是两条平行的比较链条
特殊关注:byte short char在运算时,不管是否存在更高数据类型,都会提升为int,然后再进行运算
-
强制转换
把范围大的数值赋给范围小的变量
//目标数据类型 变量名 = (目标数据类型)值或变量 //特别注意:强制转换存在精度损失的可能 byte a = 3; byte b = 4; byte c = (byte)(a + b); //常量优化机制:Java在编译的过程中会判断常量的运行结果是否在目标数据类型范围内 //在范围内,通过编译 //不在范围内,编译出错 byte d = 3 + 4;
运算符
-
运算符:对常量或变量进行操作的符号
-
表达式:用运算符把常量或变量连接起来,符合java语法的式子
算术运算符
/*
算数运算符:+ - * / (除) % (取余,常用于判断奇数偶数)
*/
// / :整数相除,结果只能得到整数,如果想得到带小数的结果,需要加入浮点类型的运算
System.out.println(10 / 2); //输出5
System.out.println(10 / 3); //输出3
System.out.println(10.0 / 3); //输出3.333333
System.out.println(10 / 3.0); //输出3.333333
字符的 + 操作
-
ASCII码表:字节到字符的一套对应关系
-
特殊数据
'a' = 97; 'A' = 65; '0' = 48;
字符串的 + 操作
-
字符串的 + 操作是字符串连接符,不是算术运算
-
在 + 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算.当连续进行 + 操作,从左到右逐个执行
-
总结:看 + 号左右!!!但凡出现字符串,必定是字符串的拼接,且字符串可以使用 + ,跟[任意数据类型]拼接
数值拆分
/*
涉及思想:降位思想
个位:数值 % 10
十位:数值 / 10 % 10
百位:数值 / 10 / 10 % 10
千位:数值 / 10 / 10 / 10 % 10
...
*/
自增自减运算符
/*
++ : 自增
-- : 自减
操作注意 : 前置时,先对变量自增(++)或自减(--),然后再那变量参与操作
后置时,先将该变量原本的值,取出来参与操作,随后再自增(++)或自减(--)
单独使用时,前置 后置效果相同
参与操作:看变量,变量左边是什么就先执行什么
*/
自增,自减只能作用于变量,不能作用于常量
赋值运算符
/*
= : 赋值
+= : 加后赋值
-= : 减后赋值
*= : 乘后赋值
/= : 除后赋值
%= : 取余后赋值
*/
扩展后的赋值运算符隐含强制类型转换
关系运算符
/*
== : 相等
!= : 不等
> : 大于
>= : 大于等于
< : 小于
<= : 小于等于
*/
关系运算符的结果都是boolean类型
逻辑运算符
/*
& : 与
| : 或
! : 非
^ : 异或
&& : 短路与,具有短路效果,当左侧结果为false时,不进行右侧运算
|| : 短路或,具有短路效果,当左侧结果为true时,不进行右侧运算
*/
逻辑运算符最终结果都是boolean类型
三元运算符
/*
格式;关系表达式 ? 语句1 : 语句2;
注意事项:
1. ?前只要能产生boolean类型的结果即可
2. 三元表达式最终结果的数据类型由语句1和语句2中较大的类型决定
3.三元表达式不能单独存在
*/
流程控制
顺序结构
从上到下,从左到右,依次执行
if语句
/*
结构1:if(关系表达式){
语句体;
};
注意事项:1.语句体是一条语句时,大括号可省略不写(不建议)
2.if语句的小括号后不要加;
结构2:if(关系表达式){
语句体1;
}else {
语句体2
};
结构3:if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2
}else if(关系表达式3){
语句体3
}
...
}else{
语句体n+1
}
*/

浙公网安备 33010602011771号