1、类型转换遵循的规则:
第一条:八种基础类型中,除了boolean类型不能转换,剩下其中类型都可以进行转化
第二条:如果整数型字面量没有超出byte,short,char的取值范围,可以直接赋值
第三条:小容量向大容量转换称为自动类型转换
浮点型任意一个比整数型都大
容量大小排序:
byte<short(char)<int<long<float<double
第四条:大容量转化为小容量称为强制类型转化,必须加强制类型转换符
但运行时可能出现精度损失,谨慎使用
第五条:byte,short,char类型混合运算时,先各自转换成int类型再做运算
第六条:多种数据类型混合运算,各自先转换成容量最大的在做运算
所有笔试题都超不出这些规则
2、运算符:
算术运算符:+、-、*、/、%(取模又称取余)、++、--
int i; i=1; i++;++i;两者语句完成结果都是2
int a,i=1; a=i++;a=++i; 两者a的值会是什么呢? 分别是a=1;a=2;
即a=i++;可以拆为a=i;i++; a=++i;可以拆为++i;a=i;
关系运算符:>,>=,<=,==,!=
逻辑运算符:&(逻辑与),|(逻辑或),!(逻辑非),&&(短路与),||(短路或)
短路与不断路(逻辑)的区别:
不断路(逻辑):完全判断,完全执行
即 a=2;i=3; a>3&i++<5 i最后的结果是4;
短路:如果判断一个结果出来就不会执行后面的语句
a=2;i=3; a>3&i++<5 i最后的结果是3;
赋值运算符:=,+=,-=,/=,%=,&=,|=,<<=,>>=(目前不需需了解&=,|=,<<=,>>=)
注意赋值时的类型转换
条件运算符:布尔表达式?表达式1:表达式2 : ?都是三目运算符
字符串链接运算符:+
3、怎么从键盘录入字符
第一种写法:
java.util.Scanner s = new java.util.Scanner(System.in)
第二种写法:
在最前方导入包
import java.util.Scanner
Scanner s = new Scanner(System.in)
4、关于 switch case
switch(值){
case 值1:(注意case与switch必须对齐)
java语句;
java语句;
break;
case 值2:
java语句;
java语句;
break;
case 值3:
java语句;
java语句;
break;
default:(假如没有符合的case值则执行default)
java语句;
}
以上是一个完整的switch语句:
其中break不是必须的,default也不是必须的
switch语句支持的值有哪些
支持int类型和String类型
但在JDK8之前的版本只支持int类型
但如果放入byte,short,char类型则可以支持,因为可以自动转为int类型且不会有损失
而long类型转为int可能会有损失也可以强转,用强转符号