zoukankan      html  css  js  c++  java
  • Java基础(一) 八大基本数据类型

    自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte, short, int, long, char, float, double, boolean.

    其中:
    整型:byte, short, int, long
    字符型:char
    浮点型:float, double
    布尔型:boolean
    在详细介绍之前,先科普一下,Java中最小的计算单元为字节,1字节=8位(bit)。
    Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?
    补码=源码取反 + 1;
    如:
    22,在计算机中的表示为00010110,
    -22,取反:11101001,加1:11101010
    byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte
    short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 01111111 11111111(32767),变量初始化默认值为0,包装类Short
    int属于Java中的整型,长度为4字节32bit,取值-2^31 (-2,147,483,648)到 2^31-1(2,147,483,647),变量初始化默认值为0,包装类Integer
    long属于Java中的整型,长度为8字节64bit,取值-2^63 (-9,223,372,036,854,775,808‬)到 2^63-1(9,223,372,036,854,775,8087),变量初始化默认值为0或0L,包装类Long
    Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准
    float属于Java中的浮点型,也叫单精度浮点型,长度为4字节32bit,变量初始化默认值0.0f,包装类Float
    包含三部分:符号位、指数位、尾数位
    符号位(S)
    指数位(E)
    尾数位(M)
    长度
    1bit
    8bit
    23bit
    说明
    0表示正数,1表示负数
    格式为
    在这里插入图片描述
    在这里插入图片描述
    ,E值范围:(0,255),指数位取值:(
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式
    正规形式:
    正规形式:
    正规形式:
    非正规形式:
    非正规形式:
    非正规形式:
    根据上面公式很容易计算出float的取值范围为:
    (最小值,当符号位S取1,指数位E取255)
    (最小值,当符号位S取1,指数位E取255)
    (最大值,当符号位S取0,指数位E取255)
    (最大值,当符号位S取0,指数位E取255)
    能取到其间的近似数据。
    注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal
    double属于Java中的浮点型,也叫双精度浮点型,长度为8字节64bit,变量初始化默认值0.0d,包装类Double
    包含三部分:符号位、指数位、尾数位
    符号位(S)
    指数位(E)
    尾数位(M)
    长度
    1bit
    11bit
    52bit
    说明
    0表示正数,1表示负数
    格式为
     
    ,E值范围:(0,2047),指数位取值:(
     
     
    形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式
    正规形式:
    正规形式:
    正规形式:
    非正规形式:
    非正规形式:
    非正规形式:
    根据上面公式很容易计算出double的取值范围为:
    (最小值,当符号位S取1,指数位E取2047)
    (最小值,当符号位S取1,指数位E取2047)
    (最大值,当符号位S取0,指数位E取2047)
    (最大值,当符号位S取0,指数位E取2047)
    能取到其间的近似数据。
    注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal
    char属于java中的字符型,占2字节16bit,可以赋值单字符以及整型数值, 变量初始化无默认值,包装类Character。
    如:
    char a = 'a';
    char a = '中';
    char a = 12; // 取值范围0~65536,因为char类型在ASCII字符编码中,有对应的数值,可直接做运算,输出字符表中对应的字符
    在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit.
    --Java虚拟机规范
    仅有两个值true, false,变量初始化默认值false
  • 相关阅读:
    SharePoint Workflow出了问题, 除了ULS log还可以看什么日志?
    Kernel Mode Debugging 初步 一
    一些debug常用的"魔法"数值
    SQL Block的初级排查
    [持续更新]一些有用的PowerShell收集
    关于斜杠(slash)和反斜杠(back slash)的小知识点
    如何安全地解放C盘剩余磁盘空间?
    返璞归真asp.net mvc 1.0(3) Controller/Action【转】
    关于Oxite的教训
    [翻译ASP.NET MVC]Contact Manager开发之旅之迭代2 修改样式,美化应用 【转】
  • 原文地址:https://www.cnblogs.com/csk001/p/14222604.html
Copyright © 2011-2022 走看看