八大基本数据类型及数据类型之间的转换—zixiao

2023年7月2日13:09:59

八大基本数据类型及数据类型之间的转换

八大基本数据类型:

  • 基本数据类型: byte short char int long float double

  • 基本数据类型对应的包装类:Byte Short Character Integer Long Float Double

  • **注:字符型char所表示的单个字符与Ascii码中相对应的整型对应 :A~Z --> 97~122 a~z – > 65~90

    数据类型 所占字节 位数 数值范围 包装器类型
    boolean -------- ---------------- --------------------------------------- Boolean
    byte 1字节 8*1 = 8bits -128 ~ 127 Byte
    char 2字节 8*2 = 16bits Unicode 0 ~ Unicode 2^16 - 1 Character
    short 2字节 8*2 = 16bits -2^15 ~ 2^15 - 1 Short
    int 4字节 8*4 = 32bits -2^31 ~ 2^31 - 1 Integer
    long 8字节 8*8 = 64bits -2^63 ~ 2^ 63 - 1 Long
    float 4字节 8*4 = 32bits IEEE754 ~ IEEE754 Float
    double 8字节 8*8 = 64bits IEEE754 ~ IEEE754 Double

    数据类型之间的转换:

    (1). 基本数据类型中类型的自动提升

    • 在Java中:整数类型(byte/short/int/long)中,对于未明确数据类型的整型,其默认类型为int型
    • 在浮点数类型(float/double)中,对于未明确数据类型的浮点型,默认类型为double型
    • 注1: 对于默认为int类型的数值,当赋给一个比int型小的数据类型变量k(k为byte/char/short)如果超过了该数据的范围编译器会出错,若不超过,jvm会自动隐式转换
    • **注2:**char类型的数据本身是unsigned其数值范围是:0~2^16-1,因此byte和short不能自动类型转换成char(signed:有符号的,unsigned:无符号的)

    (2). 隐式类型转换

      * 隐式转换也叫自动类型转换(由系统自动完成):
        byte -> short (char) -> int -> long -> float  -> double  从左到右的数据类型能发生隐式转换
    

    (3). 显示转换:

      * 显示转换也叫做强制类型转换,由程序猿手动敲代码完成
    
        例如:
        ```java
        int i = (int)3.1415926535
        ```
      * double -> float -> long -> int -> short(char) -> byte 
    
    • 注:强制类型转换所带来的结果可能会丢失精度,如果此类数值尚在范围较小的数值范围内进行转换,对于整型变量不变,但如果超过了数据的范围,会出现数据丢失

    (4). 进行数学计算时,数据会自动提升,这是时候可能会用到强制类型转换

    int a = 9;
    byte b = 1;
    byte result = (byte)(a + b);
    // b会自动类型提升转换为int 但由于接受结果的数据为byte类型有得进行强制类型转换
    

注:当进行数学运算的时候,数值范围较小的数据会自动提升为较大者! ! !

  • 作者:木森林o
  • 原文链接:https://blog.csdn.net/weixin_46654717/article/details/108636271
    更新时间:2023年7月2日13:09:59 ,共 1274 字。