1.类型转换为什么需要类型转换?原因:开发时,会出现不同类型的变量或数据复制到其他类型的变量,不同类型的数据一起操作,必须确定结果类型。自动类型转换的原理:可以将小范围类型直接复制到大范围类型变量char所赋的字符中。如果赋值给一个int类型的变量,这个变量存储的是字符的ASCII码值。表达式自动类型转换的含义:在表达式(表达式是计算公式)中,小范围类型的变量会自动提升为大范围运算。表达式的求值顺序是从左到右。结论:表达式最终的结果数据类型由表达式中最大字节大小的数据类型决定,结果数据为最大类型。注:byteshortchar在面试笔试题的表达式中直接升级为int类型:byteb1=21;字节b2=22;//idea会报错,右边是int类型但是复制成byte类型,会出现Datadefault。byteb3=b1+b2;//正确的写法intb3=b1+b2;强制类型转换含义:大范围类型的变量或数据不能直接赋值给小范围类型的变量,否则会报错!需要进行强制类型转换。格式:数据类型变量=(数据类型)其他类型变量/数据inta=1500;字节b=(字节)a;注意:强制类型转换可能会丢失数据,浮点型变量或数据强制转换为Integer类型,保留整数部分返回,直接忽略小数部分。强制类型转换的底层原理:2.运算符基本算术运算符+符号用作连接器场景:当+符号与字符串进行运算时,它充当连接器,连接后的结果仍然是字符串。使用变量操作时,输出字符串将与变量中的值连接起来。识别技巧:会数就数,不会数就连在一起。自增自减运算符注意事项:变量前后的区别是不同的(同C语言)扩展案例:System.out.println("------------扩展案例(可供理解和参考)------------");诠释k=3;诠释p=5;//k3454//p5434//rs3+5-4+4-5+4+2intrs=k+++++k---p+p---k--+++p+2;System.out.println(k);//4System.out.println(p);//4系统.out.println(rs);//9赋值运算符基本的赋值运算符是“=”,从右到左赋值。下图是扩展赋值运算符:扩展赋值运算符都隐含了强制类型转换。字节b1=2;字节b2=3;b1+=b相当于byteb3=(byte)(b1+b2)关系运算符对数据进行条件判断,返回一个布尔比较结果(false,true)逻辑运算符多个条件的布尔结果放在一起,finally返回一个布尔结果还有一个特殊的short-circuitand/or运算符:两边都不执行,逻辑and/or不管左边是false还是true,右边都是both来执行。三元运算符格式:条件表达式?值1:值2;执行过程:首先计算条件表达式的值,如果值为真返回值1,否则返回值2。注意可以多层嵌套:System.out.println("------------扩展知识------------");//这是CaseintrsMax1=i>j吗?(i>k?i:k):(j>k?j:k);System.out.println(rsMax1);operatorprecedenceLeveloperators先执行:注:1,()优先级最高2,*/高于+-3,特别注意:&&优先级高于||,&优先级高于||,&和&&符号必须先操作
