TIJ 复习笔记3

TIJ3

在最底层,java中的数据是通过使用操作符来操作的。

java中的操作符,和C++中差不多。一个表达式可能有多个操作符,操作符连接操作数,按照优先级进行计算,一般是先乘除后加减,有括号先算括号。

操作符分类:

  • 算术操作符
  • 逻辑和关系操作符
  • 位操作符
  • 混合赋值
  • 类型转换

几乎所有的操作符只能作用于,基本类型,结合基本类型来看一下这些操作符。

算术操作符

操作符包括,+、-、*、/、%、、++、–、= 、一元(-)、一元(+)

符号算术
int都可以
short/byte/short运算结果会自动提升
long都可以
float/double都可以(可以%、++、–
boolean不可以

关系和逻辑

> 、<、>=、<=、==、!=、&&、||、!

符号关系与逻辑
int不可以逻辑运算
short/byte/short不可以逻辑运算
long不可以逻辑运算
float/double不可以逻辑运算
boolean不可以比较大小

位操作符

| 、&、~、^、>>、<<、<<<、>>>(无符号右移,负数的时候补0)

符号位操作
int都可以
short/byte/short都可以,会提升类型,需要cast回来
long都可以
float/double不可以
boolean不可以

混合赋值

+=、-=、*=、/=、%=、>>=、<<=、>>>=、<<<=

符号混合
int都可以
short/byte/short都可以
long都可以
float/double不可以位运算相关
boolean不可以

类型转换

转换成其他类型

符号转换
int不能转成bool
short/byte/short不能转成bool
long不能转成bool
float/double不能转成bool
boolean不能转换

综上

  • boolean基本只能做逻辑运算;其他符号不能直接做逻辑运算。
  • 所有算术运算、位运算(除了++、–)都会引起类型提升,混合赋值不会引起类型提升。
  • float/double可以%运算,不可以位运算
  • 类型转换,除了boolean,都可以互相转换。widenning conversion和 narrow conversion,窄化转换会有丢失信息的风险。

其他要点:

  • 对象可以进行 ==、!=的运算,但是会直接比较引用,建议采用equals,但是需要将它实现。

  • 关于String进行比较的例子 http://www.cnblogs.com/tinyphp/p/3768214.html

  • double/float转换成int/long类型是,会直接截尾,Math.round可以四舍五入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值