Java运算符

1、标识符概述

运算符用于连接值。在下面内容可以看到,Java提供了一组非常丰富的算数和逻辑运算符以及数学函数。

2、标识符详解

2.1 算术运算符

在Java中,使用算术运算符+、-、*、/ 表示加、减、乘、除运算。当参与 / 运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。整数的求余操作(有时称为取模)用%表示。例如,15 / 2等于7,15%2等于1,15.0 / 2等于7.5.
注意:整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
可移植性是Java语言的设计目标之一。无论在哪个虚拟机上运行,同一运算符应该得到相同的结果。对于浮点数可移植性是非常困难的。double类型使用64位存储一个数值,而有些处理器则使用80位浮点寄存器。对大多数程序来说,浮点溢出不属于大问题。详细的可移植性内容可以查看《Java核心技术卷1》37页注释。

2.2数学函数与常量

在Math类中包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。比如,计算一个数值的平方根可以使用sqrt方法,因为Java中没有幂运算,所以要借助Math的pow方法。

floorMod方法的目的是解决一个长期存在的有关整数余数的问题。考虑表达式n % 2.所有人都知道,如果n是偶数将会得到0结果,反之n是奇数,结果是1.当然除了n是负数,如果n是负数,这个表达式则为-1.设计最早的计算机时,必须有人制定规定,明确整数除法和求余对负数操作数该如何处理。数学家们几百年来都知道这样一个最优规则:余数总是要大于0.这个规则看似合理但在实际上是很不方便的规则。
floorMod方法就让这个问题变得容易了:floorMod(position+adjustment, 12)总会得到一个0~11之间的整数。(遗憾的是,对于负除数,floorMod会得到负数结果,不过这种情况在实际中很少出现。)
Math还提供了一些常见的三角函数:
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
还有一些指数函数以及它的反函数———自然对数以及以10为底的对数:
Math.exp
Math.log
Math.log10
最后,Java还提供了两个用于表示派和e常量的最接近近似值:
Math.PI
Math.E

2.3 结合赋值和运算符

在Java中可以在赋值使用二元运算符,这是一种很方便的简写方式。例如,
x += 4;等价于x = x + 4;
(一般来说,要把运算符放在=号的左边,如*=或%=)
那么这两个表达式真的完全一样吗?其实在本质上它们两个是不一样的。
注意:如果运算符得到一个值,其类型与左侧操作数的类型不同,就会发生强制类型转换。例如,如果x是一个int,则以下语句:x += 3.5;是合法的,将把x设置为(int)(x + 3.5).

2.4 自增自减运算符

当然,程序员都知道加1、减1是数值变量常见的操作。在Java中借鉴了C和C++中的做法,也提供了自增自减运算符:n++将变量n的当前值加1,n–则将n的值减1.由于这些运算符改变的是变量的值,所以他们不能应用于数值本身。例如4++就是一个不合法的语句。
实际上,这些运算符有两种形式———“前缀”和“后缀”。这两种形式都会使变量值加一或者减一,但在表达式中,“前缀”形式会先加一再进行运算,“后缀”形式会先进行运算再加一。

2.5关系和boolean运算符

在Java中延续了C++的关系运算符:==、!=、<、>、<=、>=、&&、||、&、|
这些运算符的返回值都是boolean类型的数值true或false。
其中,&和&&的区别在于&&的短路方法,假设有如下表达式:
exp1 && exp2,如果第一个操作数能确定整个表达式的值,第二个操作数就不必计算了。这样的机制是可以用来避免错误的,例如,在下面的表达式中:
x != 0 && 1 / x > x + y
如果x等于0,那么第二部分就不会计算。因此,如果x为0,也就不会计算1 / x,除以0的错误就不会出现。类似的 || 运算符也是如此。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值