目录
数据类型转换
自动转换类型
概念
强制转换类型
概念
格式
取值范围从小到大排序
类型转换的细节
运算符
概念
表达式
分类
算术运算符
+号的特殊使用
基本数据类型之间:
引用数据类型之间:
基本数据类型和引用数据类型之间:
自增自减运算符
使用:
赋值运算符
比较运算符
逻辑运算符
短路逻辑运算符
三元运算符
数据类型转换
自动转换类型
概念
简单来说就是把一个数据类型范围小的数值赋值给左边数据类型范围大的变量
强制转换类型
概念
简单来说就是把一个数据类型范围大的数值赋值给左边数据类型范围小的变量
格式
目标数据类型 变量名 = (目标数据类型)数值;
注:强制转换有可能发生精度损失
取值范围从小到大排序
(1)char——>int——>long——>float——>double
(2)byte——>short——>int——>long——>float——>double
类型转换的细节
1.小的数据类型和大的数据类型进行运算,小的会先提升为大的数据类型,然后再进行运算
示例:
int a =10;
double d =3.14;
double c =a+b;/*a是int类型,d是double类型,double类型的取值范围比int要大,所以a和d在进行运算过程中,
会将a先提升为double类型,当类型统一后再进行运算,所以最终的结果是double类型*/
2.byte,short,int三种数据类型在进行运算的时候,会先默认提升为int类型,然后再进行运算(JVM的优化处理机制)
实例:
byte b =10;
short s=10;
int i =b+s;
运算符
概念
对常量或者变量进行操作的符号
表达式
用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
分类
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
算术运算符
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 除余 |
注:
1. /和%的区别:两个整数做除法,/取结果的商,%取结果的余数。
2. 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
3.当(byte short char int)在一起运算的时候,都会提升为int之后,再进行运算
+号的特殊使用
基本数据类型之间:
全部进行加法运算
引用数据类型之间:
全部进行拼接
基本数据类型和引用数据类型之间:
1.如果基本数据类型在前面使用+号,那么先进行加法运算再进行拼接
2.如果引用数据类型在最前面,那么全部进行拼接
注:
字符类型与基本数据类型之间使用+号,才会转换成对应的ACCSI码表的数值,然后做加法运算;字符类型与字符串之间使用+号,那么只会进行拼接。
自增自减运算符
符号 | 作用 | 说明 |
++ | 自增 | 变量的值加1 |
-- | 自减 | 变量的值减1 |
使用:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
赋值运算符
符号 | 作用 | 说明 |
= | 赋值 | a=17,将17赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
注:
扩展的赋值运算符隐含了强制类型转换
比较运算符
符号 | 说明 |
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注:
关系运算符的结果都是boolean类型,要么是true,要么是false。
千万不要把“==”误写成“=”。
逻辑运算符
使用逻辑运算符的结果是布尔类型(true或false)
符号 | 作用 | 说明 |
& | 逻辑与 | a & b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a | b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a ^ b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
短路逻辑运算符
符号 | 作用 | 说明 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
|| | 短路或 | 作用和|相同,但是有短路效果 |
注:
1.逻辑与&,无论左边真假,右边都要执行。短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
2.逻辑或|,无论左边真假,右边都要执行。短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
三元运算符
格式:数据类型 变量名 = 关系表达式 ? 表达式1 : 表达式2;
执行流程:
首先计算关系表达式的值
如果值为true,表达式1的值赋值给左边的变量
如果值为false,表达式2的值赋值给左边的变量