java深入解析-第2章 运算符与表达式
2015-07-04 11:23
507 查看
1、编译器在分析字符时,会尽可能多地结合有效字符。并且“过度”地贪心,而不管这种结合方式是否符合语法规则。如i+++j会处理为(i++)+j;然而a–b会处理a– b,编译出错。
2、贪心规则是有用的,因为这样可以对转义字符等进行特殊处理。
3、前置++与后置++都是先将变量的值加1,而不是前置++先加1然后运算,而后置++先运算后加1。
4、从程序上说,后置++先将变量赋值给一个临时变量,然后将变量的值加1,接下来使用那个临时变量参与运算。
5、从指令上说,后置++在执行增值指令钱,先将变量的值压入栈,执行增值指令后,使用的是之前压入栈的值。
6、表 除数为0的浮点运算
注意:NaN不等于任何值,因此,不能使用“==”运算符来判断一个值是否是NaN,而是使用Float(Double)类的isNaN方法。
7、表 除法相除运算
8、在整型中,+0和-0没有任何的区别,但是在浮点类型中,尽管+0与-0在数值上是相等的,使用“==”运算符,结果也为true,不过二者还是有区别的,区别体现在:
当+0与-0参与浮点类型的相关运算时,可以产生不同的结果(符号的差别)。
+0与-0在浮点类型变量存储中,符号位是不同的。
某些类会吧浮点类型的+0与-0视为完全不同的两个数值来处理。
2、贪心规则是有用的,因为这样可以对转义字符等进行特殊处理。
3、前置++与后置++都是先将变量的值加1,而不是前置++先加1然后运算,而后置++先运算后加1。
4、从程序上说,后置++先将变量赋值给一个临时变量,然后将变量的值加1,接下来使用那个临时变量参与运算。
5、从指令上说,后置++在执行增值指令钱,先将变量的值压入栈,执行增值指令后,使用的是之前压入栈的值。
6、表 除数为0的浮点运算
被除数 | 除数 | 输出结果 | 值 |
正数(float类型) | 0(float类型) | Infinity | Float.POSITIVE_INFINITY |
负数(float类型) | 0(float类型) | -Infinity | Float.NEGATIVE_INFINITY |
0(float类型) | 0(float类型) | NaN | Float.NaN |
正数(float类型) | 0(double类型) | Infinity | Double.POSITIVE_INFINITY |
负数(float类型) | 0(double类型) | -Infinity | Double.NEGATIVE_INFINITY |
0(float类型) | 0(double类型) | NaN | Double.NaN |
7、表 除法相除运算
被除数\除数 | 有穷正数 | 有穷负数 | +0 | -0 | Infinity | -Infinity | NaN |
+0 | +0 | -0 | NaN | NaN | +0 | -0 | NaN |
-0 | -0 | +0 | NaN | NaN | -0 | +0 | NaN |
Infinity | -Infinity | Infinity | Infinity | NaN | +0 | -0 | NaN |
-Infinity | -Infinity | Infinity | -Infinity | Infinity | NaN | NaN | NaN |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
当+0与-0参与浮点类型的相关运算时,可以产生不同的结果(符号的差别)。
+0与-0在浮点类型变量存储中,符号位是不同的。
某些类会吧浮点类型的+0与-0视为完全不同的两个数值来处理。
相关文章推荐
- Spring整合JMS-基于activeMQ实现(一)
- [JAVA]清洗latex数据
- 2015070403 - EffactiveJava笔记 - 第56条 遵守普遍命名规范(2)
- eclipse如何开启/关闭代码提示功能
- java基础------存取大文件数据
- java深入解析-第1章 基本概念2
- Spring MVC @Transactional注解方式事务失效的解决办法
- javassis在spring初始化前修改class文件。
- eclipse快捷键(含Debug调试)
- 2015070402 - EffactiveJava笔记 - 第56条 遵守普遍命名规范(1)
- Java单例模式复习(三)
- Java单例模式复习(二)
- Java单例模式复习(-)
- java 简体转繁体
- Spring 从零开始-02
- eclipse不能创建java虚拟机-解决方法
- Java记录 -2- 原生数据类型
- spring4.1+springmvc4.1+mybatis3.2.8+spring-security3.2.5集成环境建设
- Java知多少(112)数据库之删除记录
- eclipse打开过的工程信息保存路径