博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运算符
阅读量:5975 次
发布时间:2019-06-20

本文共 1065 字,大约阅读时间需要 3 分钟。

运算符中需要注意点几点

1.&&,&,||,|的区别

&&:如果左边false,不就行后边的判断,返回false
||:如果左边true,不就行后边的判断,返回true
&:如果左边false,还继续后边的判断,返回false
|:如果左边true,还继续后边的判断,返回true

2位运算符

A:^的特殊用法
不同为1,相同为0,a^b^b=a
B:运算是通过补码来运算的
请用最有效率的方式计算出2乘以16的结果
2<<4 2左移动4位,等价于2* 2^4
3三元运算符
比较表达式?表达式1:表达式2;
例如:2>1:2?3

4:++,- -,+=,-=有强制转化的效果

short s = 1; s = s + 1; 变量运算都转化为int类型,int–》shout 丢精度,编译报错
short s = 1; s += 1;对的,实际上是 s=(short )(s+1);

扩展:引用java核心技术的内容

可移植性是无论在哪个虚拟机上运行,同一运算应该得到同样的结果,对于浮点数的算术运算,实现这样的可移植性是相当困难的.

double类型使用64位存储一个double值,而有些处理器使用80位浮点寄存器.这些寄存器增加了中间过程的计算精度
例如.double w=x*y/2
很多intel处理器计算算x*y,并且将结果存储在80位的寄存器中,再除以z并将结果截断为64位,这样可以得到一个更加情确的计算结果还能够避免产生指数溢出。但是这个结果可能与始终在64位机器上计算的结果不一样,因此java虚拟机的最初规范规定所有的中间计算都必须进行截断,这种行为遭到了计算机团体的反对。
截断计算不仅可能导致溢出,而且截断操作需要消耗时间,所以在计算速度上要比精确计算慢,为此java 程序设计语言承认了最优性能与理想结果之间存在的冲突,并给予了改进,在默认情况下,虚拟机设计者允许将中间计算结果采用扩展的精度,但是对于使用从strictfp关健字标记的方法必须使用严格的浮点计算来产生理想的结果例如。
可以把mian方法标记为
public static strictfp void main(String[] args)
于是这个main中的所有指令都要使用严格的浮点计算。
如果将一个类标记为strictfp
于是这个类中的所有指令都要使用严格的浮点计算。

采用默认的方式不会产生溢出

采用严格计算有可能产生溢出

转载于:https://www.cnblogs.com/feiZhou/p/9344511.html

你可能感兴趣的文章
使用Denyhost来阻止恶意连接SSH的IP
查看>>
Java: System.exit() 与安全策略
查看>>
强制杀oracle进程
查看>>
Linux系统中网络配置详解
查看>>
Oracle Study之--AIX RAC下OCR磁盘故障(PROT-602)
查看>>
NA-NP-IE系列实验13:使用子网地址
查看>>
raid磁盘阵列OFFLINE后的应急方案
查看>>
转载:QTableView中嵌入可视化组件
查看>>
NA-NP-IE系列实验30:CHAP 认证
查看>>
volitile关键字
查看>>
Python回顾与整理10:模块
查看>>
Python 学习笔记 - Memcached
查看>>
重视细节,方能得到认可
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
查看>>
Linux 内核存缺陷:66% 安卓设备面临受攻击风险
查看>>
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
透过微信应用号,看HTML5与Native进入融合时代
查看>>
IE 市场份额暴跌,Edge 能否守住微软的辉煌
查看>>
NGINX Plus 提供的在线活动监控功能
查看>>
客户端验证:JQuery Validation Plugin
查看>>