Java - day001 - 8种基本数据类型

一字节8电位

Java byte 最左边一位表示正负,0是正,1是负.

(option / alt)  + / 代码提示

Refactor 重构 Rename 重命名  (windows 重命名是选中需要重命名的文件点击快捷键 F2)

 

byte       1字节  (Java 的 byte 类型 最左边一位电位表示符号  0正, 1 负) 

short      2字节

int          4字节

long        8字节

float        4 字节

double     8字节

char        2字节 (unicode 编码表中的字符)  0~65535

boolean   1字节 ( 一个字节八个电位 00000001 表示真(true), 00000000表示假(flase))

 

 

拓展资料:
单精度
单精度数是指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为 IEEE 32 位4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。
双精度浮点数
双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:2.23x10-308 ~ 1.79x10308。IEEE754为其定制标准。

 

 

// 基本类型的字面值的规则(5条)

1: 整数字面值, 是 int 类型

       右侧是int

       int a  = 4355;

       int a = 99999999999999; 错误的 没表明字面值后缀,默认int 但是超出int 范围

 

2: byte,short , char 比int 小的整数可以用范围内的值直接赋值

       byte a  = 127;

 

3: 浮点数字面值是 double类型

        double a = 3.14;

         float a = 3.14; 错误没表明字面值后缀,默认double 但是超出 float 范围,不能赋值a

 

4: 字面值后缀(大小写都可以)

         L - long 

             long a = 9999999999L;

        F - float

            float a = 3.14f;

        D - double

             double a = 3.0d;

 

5: 进制前缀

         二进制 4 位(最大1111 是16), 所以二进制可以足够表示所有 16以下 数字,

         一个16 进制的字符,可以表示二进制的4位,两个16进制的字符,可以表示8位,及一个字节值.

 

        0x - 16  进制 (表示二进制4位)

              0xff  既 255

       0  -  8进制 (表示二进制3位) 

              0377  既255

        \u - char 类型 16 进制

              必须完整表示 char 类型的两个字节值

              'a'  97  '\u0061'

               0000 0000 0110 0001

 

 

// 基本类型的运算规则(5条)

1.计算结果的数据类型, 与最大的类型一致

       3/2 = 1;      (int / int) = int;

       3d/2 = 1.5;  (double / int) = double

 

2: byte, short , char 比int小的整数,运算时会先变成 int 在 运算

       byte a = 3;

       byte b = 4;

      byte c = a + b; (错误), 运算时是 int ,用 byte接收格式不对

 

3: 整数运算溢出

       Integer.MAX_VALUE+1  得负数最小值

       就像时钟转圈一样,转到最大,再加回到最小.

       300000000*60*60*24*365 (溢出的错误结果, 乘第一次时超出int 范围,后面再乘都是错

       300000000L*60*60*24*365(对的)

 

4: 浮点数运算不精确

      2-1.9 = 0.10000000000009

      Java  提供了做精确运算的方法, 

 

5: 浮点数的特殊值

      Infinity (无穷大)

     3.14/0   或者 Double.MAX_VALUE*2; 带负号就是无穷小

 

      NaN (不是数)

     负数开方得到, 数学上是虚数, java  不表示虚数

     Math.sqrt(-2); 负数开方

 

 

// 基本类型的数据转换

     从小到大的转换是自动转换,转成浮点数可能会不精确

     byte a = 1;   既 00000001 转成 int 类型 为  00000000 00000000 00000000 00000001

     byte b = -1, 既 11111111   转成 int 类型 为 11111111 11111111 11111111 11111111

 

    从大的类型转小的类型

    int 转 byte 4个字节转成一个字节, 切掉前面的三个字节, 必须强制转型

    int a = 356;

    byte b = (byte)a;

    从大转到小的类型可能引起数据损失, 必须强制转型

   

     浮点数转整数小数会被直接舍弃,

 

 

  

 

char  (unicode 编码表中的字符)

 

posted @ 2019-04-01 08:00  Dingzhijie  阅读(459)  评论(0编辑  收藏  举报