JAVA中不同的数据类型之间的转换关系

  • 预备知识

java中有八大基本数据类型 

第一类:整数型

byte  short  int  long 

第二类:浮点型

float  double 

第三类:布尔型

boolean

第四类:字符型

char

不同数据类型所占用的空间大小是不同的

类型      占用字节数量(byte)               取值范围

byte          1                                  [-128 ~ 127]

short         2                         [-32768 ~ 32767] 

int              4   [-2147483648 ~ 2147483647]

long           8                              [-2 63~263 -1]

float           4                              [-2 31~231 -1]

double       8                             [-2 63~263 -1]

boolean     1 

char           2                                    [0~65535]  

byte a = 12;
int b = 8;
double c = 6.0;
float d = (float)12.8;

注意:在Java中无论变量的数据类型是什么  所赋值的整型变量值默认是int类型  所赋值的浮点型变量值默认是double类型

所以在第一段代码 变量值 12 和 8 都为 int类型  在第二段代码变量值 6.0 和 12.8 都为 double类型(double强制转化为float)

两种转换类型

注意 :浮点型所占的的容量都要大于整形 布尔类型不能进行类型转化

  • 小容量转化为大容量为自动类型转换

数据类型的容量关系为

byte < short(char) < int < long < float < double 

------------------------------------------

注意:数值类型的可以从小容量自动转化为大容量  字符型的可以向int float double 自动类型转换

示例1

        byte a = 8;
        short b = a;
        System.out.println("b = " + b);

        int c = 100;
        long d = c;
        System.out.println("d = " + d);
        
        int e = 200;
        double f = e;
        System.out.println("f = " + f);

        float g = 300.0F;
        double h = g;
        System.out.println("h = " + h);


        char i = '人';
        int  j = i;
        System.out.println("j = " + j);

运行结果

------------------------------------------

注意 :byte类型 [-128 ~ 127]和short类型:[-32768 ~ 32767] 不能自动转为char类型 因为char 类型[0~65535]  因为char类型不能表示负数 但可以表示更大范围的正整数 

示例2 

        byte a1 = 98;
        short a2 = 520;

        char i1 = a1;
        System.out.println("i1 = " + i1);
        
        char i2 = a2;
        System.out.println("i2 = " + i2);

 编译结果

  • 大容量转换为小容量为强制类型转换

除外特殊情况外 编写时必须添加“强制类型转换符” 但运行时可能出现精度损失 谨慎使用

------------------------------------------

注意:在为变量赋值时 所要赋的值没有超出 byte short char 的取值范围 可以直接将其赋值给byte,short,char 类型的变量

  • 示例3

        byte a = 120;
        short b = 30000;
        char c = 40000;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);

运行结果

32a1e21203e045f092b81b2c0ae8221e.png

------------------------------------------

注意:在为变量赋值时 所要赋的值超出 byte short char 的取值范围 进行强制类型转化

示例4

        byte a = 128;
        short b = 32768;
        char c = 65536;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);

运行结果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWL5paX55qE5bCPWeWQjOWtpg==,size_18,color_FFFFFF,t_70,g_se,x_16

解决方案

        byte a = (byte)128;
        short b = (short)32768;
        char c = (char)65536;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);

60d18d757dce4dd6b36cc0b1456c79fe.png  

------------------------------------------

注意:除外示例3之外的情况 大容量向小容量转化都要进行强制类型的转换

 示例5

        byte a = 127L;
        System.out.println(a);

        short b =  32768;
        System.out.println(b);

        float c = 127.0;
        System.out.println(c);

 运行结果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWL5paX55qE5bCPWeWQjOWtpg==,size_18,color_FFFFFF,t_70,g_se,x_16

解决方案 

        byte a = (byte)127L;
        System.out.println(a);

        short b =  (short)32768;
        System.out.println(b);

        float c = (float)127.0;
        System.out.println(c);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值