操作符

在最底层,Java中的数据都是使用操作符来操作的

使用Java操作符

  1. 操作符作用于操作数,生成一个新值。
  2. 有些操作符可能会改变操作数自身的值,这被称为“副作用”。

优先级

一个表达式中同时存在多个操作符时,操作符的优先决定了各部分的计算顺序。可以使用()来明确规定计算顺序

赋值

  1. “=”表示。
  2. 取右边的值复制给左边。右值可以是任意常数、变量、或表达式,只要能产生一个值就可以。左值:必须是一个明确的已命名的变量。

别名现象

在程序中操作的是对像的引用,一个对象可以用多个都不同的引用。
例:
Object a, b 两个引用指向的是同一个对象。操作a引用改变了对象的某个状态。在操作b引用来获取对象的刚通过操作a引用修改的状态的值是修改后的值。

注意传值和传址的不同

算数操作符

  1. “+”表示加。
  2. “-”表示减。
  3. “*”表示乘。
  4. “/”表示除。整数除法会直接去掉结果的小数位,即取模。
  5. “%”表示求余。从整数除法中产生余数。

自动递增和递减

  1. “++”表示递增。i++ 先产生值在自加;++i 先加在产生值。
  2. “- -”表示递减。i - -先产生值在自减;- - i 先减在产生值。

关系运数符

关系运数符计算的是操作数的值之间的关系,产生一个boolean值。

  1. “<”小于,操作数为基本数据类型,boolaen除外。
  2. “>”大于,操作数为基本数据类型,boolaen除外。
  3. “<=”小于等于,操作数为基本数据类型,boolaen除外。
  4. “>=”大于等于,操作数为基本数据类型,boolaen除外。
  5. “==”等于,适用于所有的基本数据类型。
  6. “!=”不等于,适用于所有的基本数据类型。

注:==和!= 操作数为基本数据类型时,比较的是内容,若操作数为对象的引用时,比较的是引用而不是对象的内容。如果想比较对像的内容需要使用epuals()方法。

逻辑操作符

逻辑运算符更具操作数的逻辑关系产生一个boolaen值。操作数只能是boolean值。

  1. “&&”与,一flase则flase。
  2. “||”或,一true则true。
  3. “!”非,取反。

短路现象:一旦能明确无误的确认整个表达式的值,就不在计算吧表达式的余下部分。

按位操作符

按位操作符用来操作整数基本数据类型中的单个“bit”。对两个操作数中对应的位执行布尔代数运算,并最终生成一个结果。

  1. “&”与
  2. “|”或
  3. “^”异或

移位操作符

移位操作符操作数只能是整数的基本数据类型。

  1. “<<”左移,低位补0。
  2. “>>”右移,带符号的右移,所以高位补符号位。
  3. “>>>”无符号右移,高位补0。

如果对char、byte、short进行以为操作,在移位之前他们会被转换成int类型,并且得到的结果也是一个int类型的值。只有数值的低5位才有用。防止我们移位超过int型值所具有的位数。对一个long类型的数值进行处理,得到的也是long,但数值的有段的低6位才有效,防止移位超过long型数值具有的位数。

三元操作符

boolean-eep ? value0:value1

字符串操作符

  1. “+”连接字符串。

类型转换操作符

  1. 窄化转型:有信息可能会丢失的危险。
  2. 扩展转型:信息不回丢失。

截尾
将float和double的数值转换为int型值时,总时对该数字直接结尾。
例:
27.4 和27.7 转换成int类型值时,转换后的值为27。

舍入
如果想要四舍五入,则需要使用java.lang.Math中的round()方法。

提升

  1. 如果对基本数据类型执行算术运算和按位运算,只要类型比int小的(byte,char,short)在运算前都后先自动转换成int型,最后计算的结果就是int型。
  2. int + long = long
  3. int * float = float
  4. float * long = long
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值