Java-数据类型


Java是一种强类型语言,我们在定义变量时必须要为变量指定一种类型。Java总共有8种基本类型,分别是char、int、short、long、byte、float、double、boolean。根据数据类型可以整型、浮点型、char和boolean。

整型

类型存储大小取值范围真实数值范围类型默认值
byte1字节 − 2 7 -2^7 27 ~ 2 7 − 1 2^7-1 271-128 ~ 1270
short2字节 − 2 15 -2^{15} 215 ~ 2 15 − 1 2^{15}-1 2151-32 768 ~ 327670
int4字节 − 2 31 -2^{31} 231 ~ 2 31 − 1 2^{31}-1 2311-2 147 483 648 ~ 2 147 483 6470
long8字节 − 2 63 -2^{63} 263 ~ 2 63 − 1 2^{63}-1 2631-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 8070L

整型实例

public class PrimitiveType {
    static byte by;
    static short sh;
    static int i;
    static long l;

    public static void main(String[] args) {

        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
        System.out.println("包装类:" + Byte.class.getName());
        System.out.println("最小值:" + Byte.MIN_VALUE);
        System.out.println("最大值:" + Byte.MAX_VALUE);
        System.out.println("默认值: " + by);
        System.out.println("----------------------------------------------------");

        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
        System.out.println("包装类:" + Short.class.getName());
        System.out.println("最小值:" + Short.MIN_VALUE);
        System.out.println("最大值:" + Short.MAX_VALUE);
        System.out.println("默认值: " + sh);
        System.out.println("----------------------------------------------------");

        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
        System.out.println("包装类:" + Integer.class.getName());
        System.out.println("最小值:" + Integer.MIN_VALUE);
        System.out.println("最大值:" + Integer.MAX_VALUE);
        System.out.println("默认值: " + i);
        System.out.println("----------------------------------------------------");

        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
        System.out.println("包装类:"+ Long.class.getName());
        System.out.println("最小值:" + Long.MIN_VALUE);
        System.out.println("最大值:" + Long.MAX_VALUE);
        System.out.println("默认值: " + i);
        System.out.println("----------------------------------------------------");
    }
}
结果
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:-128
最大值:127
默认值: 0
----------------------------------------------------
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:-32768
最大值:32767
默认值: 0
----------------------------------------------------
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:-2147483648
最大值:2147483647
默认值: 0
----------------------------------------------------
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:-9223372036854775808
最大值:9223372036854775807
默认值: 0
----------------------------------------------------

Java整型的数据范围与C和C++不同,JVM已经帮我们屏蔽了处理器位数的问题。C和C++需要根据操作系统位数来选择最高效的整型,否则可能会导致整数溢出。比如在32位处理器运行良好的C或C++程序在16位处理器系统上运行就可能产生不一样的结果。

浮点型

浮点型就是包含了小数的数值。包了float和double,double的存储范围和精度比float要大。

类型存储大小取值范围类型默认值
float4字节1.4E-45 ~3.4028235E380.0f
double8字节4.9E-324 ~ 1.7976931348623157E3080.0d

浮点型实例

public class PrimitiveType {
    static float fl;
    static double dou;


    public static void main(String[] args) {

        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
        System.out.println("包装类:" + Float.class.getName());
        System.out.println("最小值:" + Float.MIN_VALUE);
        System.out.println("最大值:" + Float.MAX_VALUE);
        System.out.println("默认值: " + fl);
        System.out.println("----------------------------------------------------");

        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
        System.out.println("包装类:" + Double.class.getName());
        System.out.println("最小值:" + Double.MIN_VALUE);
        System.out.println("最大值:" + Double.MAX_VALUE);
        System.out.println("默认值: " + dou);
        System.out.println("----------------------------------------------------");
    }
}
结果
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:1.4E-45
最大值:3.4028235E38
默认值: 0.0
----------------------------------------------------
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:4.9E-324
最大值:1.7976931348623157E308
默认值: 0.0
----------------------------------------------------

double的精度是float的两倍,double又叫住双精度数值类型。在实际使用中很少会使用到float数值类型。
特别注意的是浮点数不能运用到金融行业。主要原因是浮点数值采用的是二进制系统表示,在二进制系统张无法精确的表示分数比如1/10。如果需要表示精确的数值不允许有任何舍入误差,就必须使用数据类型BigDecimal

浮点数误差实例

public class PrimitiveType {
    public static void main(String[] args) {
        System.out.println(2.0-1.1);
    }
}
实际结果
0.8999999999999999

char类型

char类型用来表示单个字符。char类型的字面量值需要用单引号括起来,与双引号括起来的是完全不一样的含义。char类型的值可以表示为十六进制的数值,其取值范围从\u0000\uFFFF。char的包装类型是java.lang.Character

Unicode和char类型

在实际使用中,Unicode可以使用char类型来表示,一个Unicode字符可以是一个char值或两个char值

boolean类型

boolean类型只有两个值:truefalse。这里要和C++相区别,在C++中数值0相当于boolean值的false,非0的值相当于boolean的true,数值和boolean可以相互转换。但在java中是不允许的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值