一.类型转换
1.原因:
开发中会存在不同类型的变量或者数据赋值给其他的变量,也存在不同类型的数据一起运算,其结果类型要确定下来
2.自动类型转换:
2.1原理:小范围类型的变量可以直接赋值给大范围的变量
2.2范围信息:byte----->short----->int----->long------>float------>double
char------->int
2.3形式:byte a = 20
int b = a
2.4注意这种形式是可以的:char a = 20
int b = a
3表达式的自动类型转换:
3.1含义:在表达式中,小范围类型的变量会自动提升成大范围运算
3.2结论:表达式的最终结果数据类型是由表示式的最高数据类型决定的,最高数据类型是什么,其结果数据类型就是什么
3.3注意:byte short char在表达式中,是直接提升成int运算的
3.4笔试面试题:byte b1 =21;byte b2 = 22;
----->byte b3 = b1+b2;//错误形式
int b3 = b1+b2
byte b3 = (byte)(b1+b2)
4强制类型转换:
4.1含义:大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则会报错!必须进行强制类型转换才可以。
4.2格式:数据类型 变量 = (数据类型)其他类型的变量/数据
4.3注意:强制类型转换可能出现数据丢失
int a = 1500
byte b = (byte)a
4.4注意:浮点型类型的变量或者数据强制转换成整型,保留整数部分返回的,小数部分直接不要了
double a = 99.5
int i = (int)a; // i == 99
二.运算符
1.基本运算符
常见的:+-*/%
注意:/两个整数相除的结果一定是整数
10/3 == 3;1.0*10/3 == 3.333....
2.+符号做连接符
场景:+符号与字符串一起运算时,充当连接符,连接后的结果还是一个字符串
识别技巧:能算个则算,不能算大家连在一起-------能散则散,不能散就在一起!
3.自增自减运算符
3.1++----对变量进行+1操作
3.2-- —对变量进行-1操作
3.3注意事项:
只能操作变量,不能操作字面量-----a++; //没毛病;2++; //没这种形式,报错!
++ -- 单独使用,放在变量后面,没有区别;——a++;++a;
++ -- 如果不是单独使用,放在变量前后有明显区别——在变量前面:先+1,-1再使用变量
—— 在变量后面:先使用变量,再对变量+1,-1
4.赋值运算符
=,+=,-=,*=,/=,%=
a+b——等价与:a=(a的类型)(a+b)
用处:1适合做数据的累加操作:int a = 10 int b = 5;a+=b
2自带强制类型转换:byte b1 = 2 byte b2 = 3;
byte b3 = (byte)(b1+b2);====>b1 += b2;
5.关系运算符
== != > >= < <=
判断是否满足条件的,返回true和false:int age = 19
System.out.println(age >= 18);
以下代码是另一种写法形式:
boolean rs = age >= 18;
System.out.printlln(rs);
6.逻辑运算符
& && | || ! ^
与 :&(逻辑与):且的意思,必须前后都是true,结果才是true
&&(短路与):且的意思,必须前后都是true,结果才是true
区别:&&如果发现前面是false后面不执行,直接返回结果,性能较好一点,用的更多一点
或 :|(逻辑或):或的意思,只要前后有一个true,结果就一定是true
||(短路或):或的意思,只要前后都是true,结果java基础224讲解才是true
区别:||如果发现前面是true后面不执行,直接返回结果,性能较好一点,用的更多一点
!:取反 !false = true !true = false
^:异或操作:前后一样返回false,前后不一样返回true
7.三元运算符
做分支选择的,关键是格式——条件表达式?值1:值2
8.运算符优先级
运算符存在谁先谁后执行的情况——()优先级最高;*/高于+- ; &&优先级高于||
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/2214.html