Java的数据类型的转换

文章详细介绍了Java中的两种数据转换方式:隐形转换和强制转换。隐形转换在小类型到大类型的赋值或运算时自动发生,例如byte到int。而强制转换则需要显式指定,但可能因数值超出范围导致错误。在运算过程中,系统会自动进行类型提升,即使两个byte相加结果也会是int类型。
摘要由CSDN通过智能技术生成

在Java中存在两种数据的转换形式 ,一是隐形转换,另外一个是强制转换。

一. 隐形转换

      什么是隐形转换呢?隐形转换就是在进行运算或者在赋值的时候自动的进行类型的提升。但是隐形转换只会在小类型转换为大类型的时候生效,如图:

    

      定义了一个int类型的b,将byte类型的a赋值给b,因为byte类型比int类型小,所以这是一个隐性转换,将byte类型的a提升为int类型。

public class byte_ {
    public static void main(String[] args) {
        byte a = 10;
        int b = a;
        System.out.println(b);
       }
}

二.  强制转换

      强制转换顾名思义,就是将大类型的数据强行转换成比他小的类型数值,但是如果强制转换的数值超出了转换类型的范围,就会出现数值错误。

      强制类型转换格式就是在要转换的值前面加:(输入要转换的类型)+ 定义的变量名

public class byte_ {
    public static void main(String[] args) {

        int c = 200;
        byte d = (byte) c;
        System.out.println(d);
       }
}

 如图,将int类型的数值强制转换为byte类型,并且超过了byte类型的最大值所以出现了错误。

三.   运算

    在进行运算的时候,也会自动的进行类型转换。如代码,虽然是byte类型的变量相加,但是最后的结果却是int类型,因为他们在进行相加的时候进行的类型提升。

public class byte_ {
    public static void main(String[] args) { 
        byte a = 10;
        byte b = 20;
        int sum2 = a + b;
      }
}

     如果非要用byte类型进行相加的话,就在a和b相加之和进行转换。如下,运用运算符的优先顺序,把a和b加完后的值进行类型转换,但是要注意加完后的值如果超出的类型范围也会出现错误!

public class byte_ {
    public static void main(String[] args) {  
        byte a = 10;
        byte b = 10;
        byte sum = (byte) (a + b);
        }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值