import java.math.BigDecimal; /** * 1、表达式谜题 * * @author admin * */ public class TestExp { /** * @param args */ public static void main(String[] args) { int i = 1; /** 判断是否为奇数 **/ System.out.print(i++ + " ** 判断是否为奇数 ** "); System.out.println((5 & 1) != 0); /** 小数减法 **/ System.out.print(i++ + " ** 小数减法 ** "); System.out.println(2.00 - 1.10); BigDecimal num1 = new BigDecimal("2.00"); BigDecimal num2 = new BigDecimal("1.10"); System.out.print(" ** 小数减法 改进 ** "); System.out.println(num1.subtract(num2)); /** 计算日期是要在数字后加L,防止int溢出 **/ System.out.println(i++ + " ** 计算日期是要在数字后加L,防止int溢出 ** "); /** 一定要大写L **/ System.out.print(i++ + " ** 一定要大写L 12345 + 5432l ** "); System.out.println(12345 + 5432l); /** 十六进制数 **/ System.out.print(i++ + " ** 十六进制数 ** "); System.out.println(Long.toHexString(0x100000000L + 0xcafebabe)); System.out.print(" ** 十六进制数改进 ** "); System.out.println(Long.toHexString(0x100000000L + 0xcafebabeL)); /** 类型转换 **/ System.out.print(i++ + " ** 类型转换 ** "); System.out.println((int) (char) (byte) -1); System.out.print(" ** 类型转换 ** "); System.out.println('c' & 0xffff); System.out.print(" ** 类型转换 ** "); System.out.println(((short) (char) (byte) -1) & 1); /** 互换内容 **/ int x = 1984; int y = 2001; x ^= y ^= x ^= y; System.out.print(i++ + " ** 互换内容 ** "); System.out.println("x = " + x + "; y = " + y); /** 问号,感叹号 **/ char c = 'X'; int nMH = 1; System.out.print(i++ + " ** 问号,感叹号 ** "); System.out.println(true ? c : 0); System.out.print(" ** 问号,感叹号 ** "); System.out.println(false ? nMH : c); /** 复合表达式 **/ short sh = 0; int in = 123456; sh += in; // sh = sh + in; //非法 System.out.print(i++ + " ** 复合表达式 ** "); System.out.println(sh); Object obj = "buy"; String str = "effective java"; obj = obj + str; // obj += str; // 非法 } }