| 
 整形常量  小数常量  布尔常量  空常量 字符常量  字符串常量    byte  范围 -128 ~ 127   不同进制的数据组成   二进制         由0,1组成。以0b开头。(1.7以后的版本,基本没有怎么用) 八进制            由0,1,…7组成。以0开头 十进制         由0,1,…9组成。整数默认是十进制的 十六进制     由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头     §        运算中容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为: §        Byte , short , char -> integer ->long->float->double   思考:哪句是编译失败的呢?为什么呢?   byte b1=3,b2=4,b; b = b1 + b2 ; b = 3 +4 ; 解答:   b = b1 + b2 ; o        (1)byte ,short ,char三种数据类型在内存中运算的时候会自动类型提升为integer去运算 o        (2)b1和b2是两个变量值,  jvm 无法判断里面值的大小   b=3+4;  o        java 编译器有常量优化机制,在编译的时候已经将3+4的结果赋值给b了     逻辑与和逻辑或 单逻辑与运算  & 两边都要运算 双逻辑与运算  &&  左边为假  者右边不参与运算; 逻辑或的单和双同上   一个数被另一个数异或两次等于本身   无符号右移无论高位是什么 高位都是补0 有符号右移高位是负数就补1正数补0 * &&和&的区别? 
        * a:最终结果一样。 
        * b:&&具有短路效果。左边是false,右边不执行。   * 位异或运算符的特点 
 
    * ^的特点:一个数据对另一个数据位异或两次,该数本身不变。 
     *  <<:左移    左边最高位丢弃,右边补齐0 
    *  >>:右移    最高位是0,左边补齐0;最高为是1,左边补齐1 
    *  >>>:无符号右移 无论最高位是0还是1,左边补齐0   Byte int char short 枚举 字符串(1.7以后) 可以作为switch表达式   Int b = 0;  b = b++ ; System.out.println(b);     结果为 0;  
 |