Java类型转换

一、自动类型转换
    当Java程序在进行赋值或者运算时, 精度小的类型自动转换成精度大的数据类型,这个就是自动类型转换。
1 . char -> int -> long -> float -> double
    byte -> short -> int -> long -> float ->double 
2 .有多种类型的数据进行运算的时候,系统首先 将所有数据都转换成容量最大的那种数据,然后再进行计算。
3 .把精度大数据类型赋值给精度小的数据类型时,会报错,反之就会进行自动类型转换。
4 .(byte , short) 和 char 之间不会相互自动转换。
    根据Java语言规范,从byte到char的转换被认为不是一个拓宽原始类型的转换,而是一个拓宽并窄化原始类型的转换:
         byte需要首先转换为int,而这个int又被转换成了char。所以-109会转码为147,显示的就是奇怪的字符。其余三位都是0,转码后不会有输出。
5 .byte 、short 和 char 三者之间可以运算,运算时先转换成 int 类型,结果也是 int 类型,因此结果赋值至少需要给 int。
    三者只要参与运算就一定转换成了 int,即使是:
byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;//错误,只要这三种类型参与运算,就转换成了int类型。
int i1 = b1 + b2;//正确
6 .Boolean类型不参与类型自动转换。 
二、强制类型转换
    自动类型转换的逆过程 ,将精度大的数据类型转换为精度小的数据类型。使用时 要加上强制转换符 () 。但 可能造成精度降低或溢出,格外要注意。
1 .当进行数据的精度从大到小,就需要强制转换。
2 .强制转换 只对最近的操作数有效,往往会使用小括号提升优先级。
        int x = (int)10 * 3.5 + 6 * 1.5; //错误
        int x = (int)(10 * 3.5 + 6 * 1.5); //正确
3 .char 类型可以保存 int 类型的常量值,但不能保存 Int 类型的变量值,需要强制转换。
三、String和基本数据类型转换
1 .基本数据类型转String类型:
    基本数据类型 + “”
    int i = 1;
    String s = i + "";
2 .String类型转基本数据类型:
    通过基本类型的包装类调用parseXX方法。
    String s ="123";
    int i = Integer.parseInt(s);
3 .String转换基本数据类型时,需要保证字符串可以转换成对应的类型,例如"123"可以转换成int型,但是"hello"不能。
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值