数据类型与运算符(二)

目录

基本数据类型的类型转换

1、自动类型转换

2、强制转换

3、关系运算符

4、boolean类型

5、逻辑运算符

6、位运算符

7、条件运算符

8、运算符优先级


基本数据类型的类型转换

不同的基本数据类型之间进行运算时需要进行类型转换。

boolean类型与其他基本类型不能进行类型转换(既不能进行自动类型的提升,也不能强制类型转换),否则,编译将出错。

基本数据类型的转换主要在赋值运算、算术运算时发生。

转换方式有两种:自动类型转换强制类型转换

1、自动类型转换

规则1:如果一个操作数为double型,则整个表达式可提升为double

规则2:满足自动类型转换的条件

两种类型要兼容:数值类型(整型和浮点型)互相兼容

目标类型大于源类型: 例如:double 型大于 int

默认转换(从小到大的转换)

byte,short,char—int—long—float—double

byte,short,char相互之间不转换,他们参与运算首先转换为int类型

2、强制转换

强制转换一般用于高级别的类型赋值给低级别类型
例如:

byte a = 2;

byte b = 3 ;

byte c = a + b;(错误,java中数值计算默认使用int类型,得到的结果为int类型,所以不能直接用byte接收)

byte c = (byte)(a + b);

short a = 2;

short b = 3 ;

short c = a + b;(错误,java中数值计算默认使用int类型,得到的结果为int类型,所以不能直接用short接收)

short c = (short)(a + b);

long a = 2;

long b =3 ;

long c = a + b;   此代码不会报错,因为long取值范围比int大

char类型可以与byte类型相互转

原因:涉及到ASSII码值,且取值范围为0-127,但并不绝对

char类型的变量不能赋值给byte类型的变量,但char可以直接赋值给byte类型的变量

3、关系运算符

运算符含义范例结果
==等于5==6false
!=不等于5!=6ture
>大于5>6false
<小于5<6ture
>=大于等于5>=6false
<=小于等于5<=6ture

注意:

= 为赋值运算符, == 为等于运算符
关系表达式的结果为布尔值
> < >= <= 运算符只支持数值类型的数据比较
== != 运算符支持所有数据数据类型的比较
> < >= <= 运算符的优先级别高于 == !=

4、boolean类型

boolean类型只有两个值: 真ttrue        假false

5、逻辑运算符

运算符含义运算规则
&&短路与

两个操作数都是true,结果才是true;如果左边为false,右边的表达式不会进行运算

||短路或

两个操作数一个是true,结果为true;如果左边为true,右边的表达式不会进行运算

逻辑非

操作数为true,结果为false;操作数为false,结果为true

&逻辑与

两个操作数都是true,结果才是true;不论左边取值,右边的表达式都会进行运算

|逻辑或

两个操作数一个是true,结果为true;如果左边为true,右边的表达式都会进行运算

^逻辑异或

两个操作数相同,结果为false;两个操作数不同,结果为true

6、位运算符

运算符含义运算规则
&按位与

两个操作数都是1,结果才是1

|按位或

两个操作数一个是1,结果为1

^按位异与

两个操作数相同,结果为0;两个操作数不同,结果为1

~按位非

两个操作数都是true,结果才是true;不论左边取值,右边的表达式都会进行运算

<<左移

右侧空位补0

>>右移

左侧空位补最高位,即符号位

>>>无符号右移

左侧空位补0

注意:

位运算符的操作数都是整型数,包括 int short long byte char
位运算符的运算结果也都是整型数,包括 int long
如果操作数是 char byte short ,位运算前其值会自动晋升为 int, 运算结果也为 int
位运算符对操作数以二进制为单位进行运算

7、条件运算符

int min;
min = 5 < 7 ? 5 : 7;
System.out.println(min);
min = 10 < 7 ? 10 : 7;
System.out.println(min);

8、运算符优先级

优先级别最低的是赋值运算符

1、单目运算符包括!  ~ ++  --,优先级别高

2、可以通过()控制表达式的运算顺序,()优先级最高

3、总体而言,优先顺序为算术运算符 > 关系运算符 > 逻辑运算符

4、从右向左结合性的只有赋值运算符、三目运算符和单目运算符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值