美文网首页
java数据类型

java数据类型

作者: 数据僧 | 来源:发表于2018-01-08 13:42 被阅读0次

    读者注意:


    问题:

    1,为什么byte占8位,short占16位,int占32位,long占64位,float占32位,double占64位,boolean占1位,char占16位?
    2,byte,short,int,long,float,double,boolean,char 默认值、最大值、最小值是如何确定的?


    前置知识

    存储单位

    1. 位 (bit-比特):表示二进制位。计算机的最小存储单位。比如:11010100 是一个8位二进制数。
    2. 字节 ( byte-B-拜特 ):计算机中数据处理的基本单位。1Byte=8bit。是指一小组相邻二进制数码。它是构成信息的最小单位,并作为一个整体进行操作。字节比字小,是构成字的单位。1个字节存入一个ASCIl码。两个字节存储一个汉字国标码。
    3. 字 ( word ):计算机进行数据处理时,一次存取,加工和传送的数据长度。一个字通常由一个字节或者多个字节组成。
    4. 字长:计算机的每个字所包含的位数称为字长。根据计算机的不同,字长分为固定和可变的。
        固定字长:字长无论什么情况都是不变的。
        可变字长:在一定范围内,字长是变化的。
      计算机处理数据的速率和它一次处理数据的位数以及进行运算的快慢有关。计算机的字长决定了其CPU一次操作实际处理位数的多少。计算机的字长越大,其性能越优越。
    5. 字块:在信息处理中,一群字作为一个单元来处理的称为“字块”,也叫字组。在大容量存储中,都是以字块为单位而存入的。因此只有字块是寻址的。

    总结一: 在计算机的运算器、控制器中,通常都是以字为单位进行传送的。字出现在不同的地址其含义也不同,在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元。一个字由若干个字节组成,不同的计算机系统的字长是不同的,例如:送往控制器去的字是指令,而送往运算器去的字就是一个数。字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。
    总结二:注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量。正象生活中重量与公斤的关系,公斤是单位,重量是指标,重量需要用公斤加以衡量。

    数据存储结构

    编码

    1. 机器数:一个数在计算机中的二进制表示形式。机器数是带符号的,最高位存储符号,正数为0,负数为1。
    2. 真值:将带符号位的机器数对应的真正数值称为机器数的真值。


      机器数|真值 图解
    3. 图中的 1000,0101 如果忽略符号位,对应的值是 133,不是机器数对应的真值

    原码

    (1Byte=8bit) Byte 计算机的最小数据处理单位

    反码

    反码示意图

    补码

    1. 补码推算方式:
          正整数的补码是:其二进制表示,与原码一致
          负整数的补码是:将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1。(注意此条,只是一种补码的计算方式,不是补码的编码方式)
    2. 补码的特性
          1、一个负整数(或原码)与其补数(或补码)相加,和为模。
          2、对一个整数的补码再求补码,等于该整数自身。
          3、补码的正零与负零表示方法相同。
    补码示意图

    java基础数据类型

    概述:byte,short,int,long,float,double,boolean,char

    byte

    1. 占用存储:8位
    2. java数据处理单位:1字节
    3. 最大值:127 [27-1];最小值: -128[-27]
      a. 为什么最大值是127,最小值是-128?
    4. 默认值是:0
      a. 为什么默认值是0?
    答3-4:最大值|最小值|默认值

    short

    1. 占用存储:16位
    2. java数据处理单位:2字节
    3. 最大值:32767[215-1];最小值:-32768[-215]
    4. 默认值:0

    int

    1. 占用存储:32位
    2. java数据处理单位:4字节
    3. 最大值:2,147,483,647[231-1];最小值:-2,147,483,648[-231]
    4. 默认值:0
    INT最大值|最小值演示 Int最小值演示 Int最大值演示

    long

    1. 占用存储:64位
    2. java数据处理单位:8字节
    3. 最大值:9,223,372,036,854,775,807(263 -1);最小值:-9,223,372,036,854,775,808(-2^63)
    4. 默认值:0L

    float

    1. 占用存储:32位、符合IEEE 754标准的浮点数
    2. java数据处理单位:4字节
    3. 最大值:3.4028235E38[3.4028235 * 1038];最小值:1.4E-45[1.4 * 10-45]
    4. 默认值:0.0f

    double

    1. 占用存储:64 位、符合IEEE 754标准的浮点数
    2. java数据处理单位:8字节
    3. 最大值:1.7976931348623157E308[1.7976931348623157 * 10308];最小值:4.9E-324[4.9 * 10-324]
    4. 默认值:0.0d

    boolean

    1. 占用存储:it depends on Java virtual machine
    2. 只有两个取值:true 和 false
    3. 默认值:false

    char

    1. 占用存储:16位, Unicode 字符
    2. java数据处理单位:2字节
    3. 最大值:\u0000[0];最小值:\uffff[65,535];
    4. char 数据类型可以储存任何字符

    引用数据类型

    对象、数组、集合。所有引用数据类型的默认值是null


    参考资料

    http://blog.csdn.net/YuanMxy/article/details/74170745
    https://www.cnblogs.com/x_wukong/p/3952688.html
    https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
    https://www.cnblogs.com/x_wukong/p/3952688.html

    相关文章

      网友评论

          本文标题:java数据类型

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