基本数据类型char、byte、short、integer、long、double、float范围

基本数据类型范围

  • char:占2个字节,采用Unicode编码【Unicode编码的前128字节编码与ASCII兼容】,字符的存储范围在\u0000~\uFFFF【0到65535】
    包装类型:Character
    最小值:Character.MIN_VALUE=’\u0000’
    最大值:Character.MAX_VALUE=’\uFFFF’
  • byte:占1个字符,范围为:-128~127,包装类型为:Byte
    最小值:Byte.MIN_VALUE= -128
    最大值:Byte.MAX_VALUE=127
  • short :占2个字节,包装类:Short
    最小值:Short.MIN_VALUE=-32768 (-2的15次方)
    最大值:Short.MAX_VALUE=32767 (2的15次方-1)
  • int :占4个字节,包装类:Integer,享元模式在常量池中初始化了-128–127之间的整数对象
    最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
    最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
  • long: 占8个字节,包装类:java.lang.Long
  • float:占4个字节,包装类:java.lang.Float
  • double:占8个字节,包装类:java.lang.Double
public static void main(String[] args) {
    
    
       System.out.println(Integer.valueOf(Character.MIN_VALUE));  //0
       System.out.println(Integer.valueOf(Character.MAX_VALUE));  //65535

       System.out.println(Byte.MIN_VALUE);  //-128
       System.out.println(Byte.MAX_VALUE); //127

       System.out.println(Short.MAX_VALUE); //32767
       System.out.println(Short.MIN_VALUE); //-327678
       
       System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE); // true
       System.out.println(Integer.MIN_VALUE - 1 == Integer.MAX_VALUE); //true

       System.out.println(Long.MAX_VALUE + 1 == Long.MIN_VALUE);//true
       System.out.println(Long.MIN_VALUE - 1 == Long.MAX_VALUE);//true
       System.out.println(Long.valueOf(Integer.MAX_VALUE + 1));  //-2147483648
}

存在i+1<i的数吗?

如果i为int类型,当i为int类型的最大值时,i+1就溢出变为负数了,此时i+1>i

  System.out.println(Integer.MAX_VALUE + 1 > Integer.MAX_VALUE);  //false

整数强制转换之数据溢出

  • 当一个byte类型的变量被赋值超出byte类型的范围时,编译会报错,除非被强制转换为byte类型
    在这里插入图片描述
    在这里插入图片描述
    原因:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/user2025/article/details/107743602