美文网首页
Java 基本数据类型相关问题总结

Java 基本数据类型相关问题总结

作者: 07120665a058 | 来源:发表于2018-08-22 22:57 被阅读12次
    • int 溢出
    int * int 可能会超过int的最大值,所以应该转为更长整型 long
    判断溢出的方法:Math.addExact(left, right)
    源码:
    int r = x + y;
    if (((x ^ r) & (y ^ r)) < 0) {
      throw new ArithmeticException("integer overflow");
    }
    只有当 x y 是同符号的时候才可能会溢出(x 和 y 的符号都跟 r 不一样)
    
    • 移位运算符
    << :左移运算符,num << 1,相当于num乘以2
    >> :右移运算符,num >> 1,相当于num除以2
    >>>:无符号右移,忽略符号位,空位都以0补齐
    举例: 1000 …….. 1000
    不带符号位(整体右移1) >>>:0100 ……0100
    带符号位(符号位不动)>>:1000 …….. 0100
    
    • 算术运算的类型
    long * int = long 只要其中一个是 long,结果就为 long
    double * float = double
    short * short = int 
    
    • Math取整
    final int number = Math.round();
    floor  向下取整
    ceil   向上取整
    round  四舍五入取整(只根据小数点后一位来判断)
    
    • INFINITY的定义
    public static final double POSITIVE_INFINITY = 1.0 / 0.0;
    public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
    INFINITY:表示无限,乘以 0 等于NAN,做其他运算结果还是无限
    
    • NAN的定义:
    public static final double NaN = 0.0d / 0.0;
    NAN:表示非数字,和谁都不相等,也不等于自己
    举例:assertFalse(Double.NaN == Double.NaN);
    

    https://www.cnblogs.com/zhisuoyu/p/5314541.html

    • 几个基本类型的默认值:
    boolean:false
    int / short / byte / long:0
    char:'\u0000'
    double:0.0d
    float:0.0f
    long:0L
    String:null
    Object:null
    
    • 基本类型——字节byte —— bit位

    byte —— 1字节 —— 1*8   
    short —— 2字节 —— 2*8    
    int —— 4字节 —— 4*8 
    
    long —— 8字节 —— 8*8
    
    float —— 4字节 —— 4*8 
    double —— 8字节 —— 8*8 
    char —— 2字节 —— 2*8 ——无符号              
    boolean —— 1字节 —— 1*8  
    
    • UTF可能表示的字节数
    UTF-8:1 / 2 / 3
    UTF-16:2 / 4
    UTF-32:4
    
    • 运算符优先级
    括号 > 单目 > 算术 > 关系 > 位 > 逻辑 > 条件 > 赋值
    
    • 位运算符
    `^` 异或运算符,相同为0,不同为1
    `~` 非运算符,按位取反
    优先级:`~` > `&` > `|`
    
    • 区别:&&(逻辑与) &(按位与) |(按位或) ||(逻辑或)
    `||` :只要满足第一个条件,后面条件就不再判断
     `|` :要对所有的条件都进行判断
    

    参考文章
    Java &、&&、|、||、^、<<、>>、~、>>>等运算符
    Java运算符优先级整理

    相关文章

      网友评论

          本文标题:Java 基本数据类型相关问题总结

          本文链接:https://www.haomeiwen.com/subject/qyjuiftx.html