java基础知识-意想不到的结果
来源:互联网 发布:linux tar解压缩 zip 编辑:程序博客网 时间:2024/05/01 16:30
public class JavaTest {
public static strictfp void main(String[] args) {
method0(); // 此方法主要用于测试运算顺序,比较简单method1(); // 此方法测试快速运算,虽然第二个判断条件有错误,但是都不会运行到第二个判断条件地方method2(); // 测试向上转型问题,float i = 9 / 2;虽然i为float类型,但是先运算的是9/2,计算结果为4,再将4赋值给i,所以为4.0method3(); // 测试向下转型问题,short i = 9 / 2; 9/2为4,赋值给short类型的i,然后再加2.5,计算结果为整数6,赋值给imethod4(); // 测试++i,i++问题,没什么好说的method5(); // 测试位移运算,值得注意的是1 << 35,这个结果与机器码长度相关method6(); // 这个方法最具有迷惑性,测试的是误差问题,机器码不能完整表示0.1这个数字
System.out.println(method7()); // 测试返回值问题,值得注意的是在final中又对返回值做了修改,所以返回值为b + a
}
private static void method0() {int a = 1;int b = 2;int c = 3;a += b += c;System.out.println("a=" + a + ",b=" + b + ",c=" + c);}
private static void method1() {int x = 0;int y = 6;if ((x != 0) && (x < y / x)) {System.out.println("&&");}if ((x == 0) || (x < y / x)) {System.out.println("||");}}
private static void method2() {float i = 9 / 2;System.out.println(i);}
private static void method3() {short i = 9 / 2;i += 2.5;System.out.println(i);}
private static void method4() {int m = 7;int n = 7;int a = 2 * ++m;int b = 2 * n++;System.out.println("m=" + m + ",n=" + n + ",a=" + a + ",b=" + b);}
private static void method5() {System.out.println(-2 >> 1); // 符号位填充高位System.out.println(-2 >>> 1); // 0填充高位System.out.println(-2 << 1); // 0填充低位,符号位不变System.out.println(1 << 35); // 与1<<(m%n)相同 n为机器字节码长度}
private static void method6() {System.out.println(1 - 0.9);}
private static int method7() {int a = 1;int b = 2;try {int c = b / a;return c;} catch (Exception e) {e.printStackTrace();} finally {if (true) {return b + a;}}}return b - a;
}
运行结果:
a=6,b=5,c=3
||
4.0
6
m=8,n=8,a=16,b=14
-1
2147483647
-4
8
0.09999999999999998
3
0 0
- java基础知识-意想不到的结果
- 线程的乱序执行,可能会得到意想不到的结果
- 十大你意想不到的 Java 8 新特性
- 九。温暖地待人,你才会得到意想不到的惊喜结果。
- golang中map和slice的查询速度比较,结果意想不到
- 意想不到的收获
- sscanf意想不到的强大
- WIN7意想不到的强大功能
- Javascript你意想不到的功能!!!
- 意想不到的有趣linux命令
- 意想不到的有趣linux命令
- 意想不到的有趣linux命令
- 意想不到的有趣linux命令
- 意想不到的有趣linux命令
- 意想不到的有趣linux命令
- 今天收获的意想不到的快捷键
- 你意想不到的的编程问题
- 软件开发的路上,意想不到的坑
- 第8周实践项目2 - 建立链串的算法库
- 合并两个排序列表
- Lua的function、closure和upvalue
- ++Builder的学习教材
- 第九周 项目3-1 -建立稀疏矩阵三元组表示的算法库
- java基础知识-意想不到的结果
- (正则表达式)工具
- 第七周项目3-负数把正数赶出队列
- python psutil模块用法学习
- 为什么企业开早会,有点扯淡?
- cacti自定义监控脚本
- java/jsp获取当前路径的几种方法
- 传递数组时实参和形参有多种形式
- Linux 定时任务经典案例