一、基本数据类型的转化
一.基本数据类型的转换
8种基本数据类型出了布尔型都可以进行相互转换 (byte,short,int,long,float,double,char)
转化的方向byte-->short(char)-->int-->long-->float-->double
● 在程序语言中必须要进行数值之间的传递,会有类型不一样,所以必须进行数据类型之间的转换
1.默认转化
●当多种数据类型进行运算时,系统会默认转化成容量大的类型
☞实例: int a,b=1;byte c=5;a=b+c;
▶此处的b+c,系统会默认将c转化成int类型来计算
小容量转化为大容量
([为什么8字节的long可以向字节更小的float转化呢]
▶因为是由于float类型的 小数点位特殊储存数据方式,详细请看--->float中小数点特殊存储方式
!!!进行数据之间计算时候有特殊的三个数据类型,分别是byte,short,char,他们会,默认转化成int类型的变量再进行运算
☞实例: byte a= 1; short b = 2; short c = a+b;
此处报错
▶ !!!此处的代码会报错,在运行a+b时会将a与b转化成int类型,再赋值给a,因为a时short的所有会报错,要将(a+b)进行强制转化成int才行
2.强制转化:
此处要注意:强制转化可能导致精度降低数据溢出,要谨慎使用
●当要满足运算的需要,或者要求结果的数据类型时就要 强制转化数据类型
☞实例: 将short转化成int short a = 5; int b = (int)a;
*数据的溢出:
当将int数据转化成short时,会将int前16个[比特位]直接去掉,剩下的就是转化后的值
二、运算符*
1.算术运算符
●算术运算符有,+,-,*,/,%
运算符"+":数值加数值,相当于数学里的求和运算;
数值加字符串,进行字符串的相加
☞实例:int a=110; String str=100;System.out.println(a+str)
输出结果是110100;
2.比较运算符
赋值运算符包括:
==
比较符号两边数据是否相等,相等结果是true
<
比较符号左边的数据是否小于右边的数据,如果小于结果是true
>
比较符号左边的数据是否大于右边的数据,如果大于结果是true
<=
比较符号左边的数据是否小于等于右边的数据,如果小于等于结果是true
>=
比较符号左边的数据是否大于等于右边的数据,如果大于等于结果是true
!
比较符号两边数据是否不相等,不相等结果是true
注意事项:
⑴比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
⑵.如果进行多次判断,不能连着写,例如1<x<3,此时需要用到逻辑运算符
3.逻辑运算符
与(并且) && 全都是true才是true,否则是false
或(或者) || 有一个是true就是true;全都是false就是false
非(取反) !本来是true,变成false;本来是false,变成true
注意:与&&,或||,具有短路效果,如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能
注意事项:
1.逻辑运算符只能用于boolean值。
2.与、或需要左右各自有一个boolean值,
但是取反只要有一个唯一的boolean值即可。
3.与、或两种运算符,如果有多个条件,可以连续写。
两个条件:条件A && 条件B
多个条件:条件A && 条件B && 条件C && ...
Tips:
对于1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来:
int x = 2;
1 < x && x < 3
4.赋值运算符
+= 将该运算符左边的数值加上右边的数值, 其结果赋 值给左边变量本身 int a=5; a+=2; a=7
-= 将该运算符左边的数值减去右边的数值, 其结果赋 值给左边变量本身 int a=5; a-=2; a=3 = 将该运算符左边的数值乘以右边的数值, 其结果赋 值给左边变量本身 int a=5; a=2; a=10
/=
将该运算符左边的数值整除右边的数值, 其结果赋
值给左边变量本身 int a=5; a/=2; a=2
%=
将该运算符左边的数值除以右边的数值后取余,其
结果赋值给左边变量本身 int a=5; a%=2; a=1
关系运算符的优先级
优先级 | 运算符分类 | 结合顺序 | 运算符 |
---|---|---|---|
由 | 分隔符 | 左结合 | . [ ] () ; ,- |
高 | 一元运算符 | 右结合 | ++ -- ~ |
到 | 算术运算符与移位运算符 | 左结合 | + - * / % << >> >>> |
地 | 关系运算符 | 左结合 | < > <= >= instanceof == != |
的 | 逻辑运算符 | 左结合 | ! && 逻辑或 ~ & ^ |
关 | 三目运算符 | 右结合 | 布尔表达式?表达式1:表达式2 |
系 | 赋值运算符 | 右结合 | = += -= *= /= %= <<= >>= >>>= &= |