数据类型介绍

本文详细介绍了Java中的基本数据类型,包括整数型、浮点型、字符型和布尔型,并强调了数值类型间的转换规则。特别讨论了浮点型的特性和潜在的舍入误差问题,举例说明了float类型的不精确性。在处理高精度计算如银行业务时,建议使用BigDecimal类以避免误差。同时,文章提醒开发者在面试中应注意避免使用float进行精确计算。
摘要由CSDN通过智能技术生成

数据类型

  • 整数型:byte字节型(1字节)、short短整型(2字节)、int整型(4字节)、long长整型(8字节)

  • 浮点型:float浮点型(4字节)、double双精度浮点型(8字节)

  • 字符型 :char字符型(2字节)

  • 布尔型:Boolean布尔型(1位)

    整数型、浮点型和字符型称为数值类型;Boolean型为布尔类型。


    上文提到的字节和位的关系,字节英文:byte,位英文:bit,1byte=8bit

想到数据类型我们是不是就会想到类型转换 ,那么我们怎么理解类型转换呢?我们想像一下,一瓶装满水的杯子可以倒入大杯子不会溢出,但是一瓶装满水的大杯子倒入小杯子,小杯子一定会溢出,这时我们可以将容量看成是字节,小字节可以转换为大字节,大字节会转换为小字节但需要强制性转换。如下2字节转换为4字节是比较简单的类型转换:

   


而且在运行浮点型我们发现了一些float的性质:我们看下面的源代码

        float i1=0.1F;
        double i2=1.0/10;
        System.out.println(i1==i2);
        System.out.println(i1);
        System.out.println(i2);
        float i3=123333337777777777F;
        float i4=i3+1;
        System.out.println(i3==i4);

由上面的源代码我们直接看的话会认为i1==i2为true,i3==i4为false,如果我们这样想的话就是错的,我们看下面的运行结果:

由运行结果我们知道与我们想象的完全不一致,这就与float特性有关了,其具有离散性、舍入误差、接近但不等于等性质。所以在我们碰到银行业务如何表示时的笔试题,切忌不可采取float,具有误差,我们可以引入新的类BigDecimal数学工具类,来对银行业务进行表示,如果大家要对BigDecimal类了解可以自行查阅资料深入了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值