java基础之数据类型的转换

本文详细讨论了Java中常见的数据类型转换规则,并通过代码实例展示了如何避免常见错误,确保程序运行的正确性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言即将进入大四,内心不免感到有点心慌,但所幸我已然找到自己感兴趣也愿意为之不断努力的事。经过一段时间对一些技术网站的浏览,发现网络真的是个很神奇的东西,很多技术问题均能在网络上找到答案,看着很多技术大牛们都有写博客的习惯,突然兴致一来,也想记录自己对Java学习的过程,写写博客,但发现优快云中写博客竟然需要审核,而且还不能够预览,实在是感到麻烦,转而发现QQ中的日志功能强大,完全能够满足自己的需求,故而就在此开始我的技术学习之路,以便将来复习所用。
 
在此我只对byte,short,char,long,int,float,double这几种数据类型进行讨论。
隐形转换规则(容量小的可以自动转换为容量大的,容量大的转换为容量小的需要强制转换):
(1)char,short,byte->int->long->float->double
(2)byte,short,char之间不会互相转换,它们在运算时自动转换为int类型
直接上代码:
 
public class TestConvert {
    public static void main(String args[]){
        
        int i1=23;
        int i2=34;
        float f1=i1+i2;//intfloat
        float f2=(float)((i1+i2)*1.2);//double
        double d1=123.23;
        
        System.out.println("f1="+f1+","+"f2="+f2+","+"d1="+d1);
        
        byte b1=1;
        byte b2=2;
        byte b3=(byte)(b1+b2);//byte,short,charint
        
        System.out.println("b3="+b3);
        
        double d2=10e200;
        //System.out.println("d2="+d2);
        float f=(float)d2//
        System.out.println("f="+f);
        
        long l1=1000L;
        long l2=100L;
        float f3=123.2f;//f
        float f4=l1+l2+f3;//float
        long l=(long)f4;//,
        System.out.println("f3="+f3+","+"f4="+f4+","+"l="+l);
        
    }
}
 
 下面结合一道改错题进行说明,在此只写一些关键代码:
 
public static void main(String args[]){
    
    int i=1,j;
    float f1=0.1,f2=123;//f10.1doublefloat
    long l1=12345678,l2=8888888888888;//l2intL
    double d1=2e20,d2=124;
    byte b1=2,b2=1,b3=129;//b3byte127
    j=j+10;//j
    i=i/10;
    i=i*0.1;//0.1double
    char c1='a',c2=125;
    byte b=b1-b2;//b1-b2int
    char c=c1+c2-1;//intchar
    float f3=f1+f2;
    float f4=f1+f2*0.1;//0.1double
    double d=d1*i+j;
    float f=(float)d1*5+d2;
    
    }
 
 
解释说明已经跟在代码后面的注释里,下面给出修正后的代码:
 
 
public static void main(String args[]){
            
            int i=1,j=1;
            float f1=0.1f,f2=123;
            long l1=12345678,l2=8888888888888L;
            double d1=2e20,d2=124;
            byte b1=2,b2=1,b3=(byte)129;
            j=j+10;
            i=i/10;
            i=(int)(i*0.1);
            char c1='a',c2=125;
            byte b=(byte)(b1-b2);
            char c=(char)(c1+c2-1);
            float f3=f1+f2;
            float f4=(float)(f1+f2*0.1);
            double d=d1*i+j;
            float f=(float)(d1*5+d2);
            
            }
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值