Java-入门基础-(7)数据类型自动和强制转换

结合所有基本运算符+数据类型之间互相转换~彻底拿捏基本数据类型!

Java入门-基本运算符-CSDN博客文章浏览阅读391次,点赞11次,收藏8次。System.out.println("=======算术运算符=======");System.out.println("=======扩展运算符=======");System.out.println("=======关系运算符=======");System.out.println("=======逻辑运算符=======");System.out.println("=======字符运算符=======");System.out.println("=======位运算符=======");https://blog.csdn.net/aheyor/article/details/135496671?spm=1001.2014.3001.5501

1.自动类型转换 ==  容量小的数据类型 可以自动转换 容量大的数据类型

(不是指字节大小    是指表数范围 )

long 8个字节 可以自动转换 float 4个字节

实线无数据丢失  虚线有精度丢失

//代码练习

/**
 * 测试基本数据类型的转换(自动转换、强制转换)
*/
public class TestTypeConvert {
    
    public static void main(String[] args){        
        //自动类型转换:表数范围小的可以自动转换为表数范围大的
        long a1 = 3456;
        float a2 = a1;
        System.out.println(a2);
        //整型常量直接赋值给byte/short/char等类型,只要不超表数范围,则可以自动转换
        byte b1 = 121; //合法
        //byte b2 = 200; //byte: [-128.127],200超过byte的表数范围,则不合法
        
        //算数运算符,两个操作数都是整型:有一个是long,则结果为long。否则结果int (即使byte,结果也是int)
        long c1 = 1234;
        int c2 = 123;
        long c3 = c1+c2;
        
        //算术运算符,有一个操作数是double,则结果是double
        double d1 = 3.14;
        int d2 = 3;
        double d3 =d1+d2;
        
        //强制类型转换
        double m1 = 3.98;
        int m2 = (int)m1;
        System.out.println(m2);
        
        char m3 = 'c';
        int m4 = m3+2;
        char m5 = (char)m4;
        System.out.println(m5);
        
        //当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成一个完全不同的值。
        
        int n1 = 300;
        byte n2 = (byte)n1;
        System.out.println(n2);
        
        //溢出错误:操作比较大的数,要留意是否溢出.
        int salary = 1000000000; //10亿
        int years = 30;
        int total01 = salary*years;
        long total02 = 1L*salary*years;
        
        System.out.println(total01);
        System.out.println(total02);
    }
}

/**
 * 测试基本数据类型的转换(自动转换、强制转换)
*/
public class TestTypeConvert {
    
    public static void main(String[] args){        
        //自动类型转换:表数范围小的可以自动转换为表数范围大的
        long a1 = 3456;
        float a2 = a1;
        System.out.println(a2);
        //整型常量直接赋值给byte/short/char等类型,只要不超表数范围,则可以自动转换
        byte b1 = 121; //合法
        //byte b2 = 200; //byte: [-128.127],200超过byte的表数范围,则不合法
        
        //算数运算符,两个操作数都是整型:有一个是long,则结果为long。否则结果int (即使byte,结果也是int)
        long c1 = 1234;
        int c2 = 123;
        long c3 = c1+c2;
        
        //算术运算符,有一个操作数是double,则结果是double
        double d1 = 3.14;
        int d2 = 3;
        double d3 =d1+d2;
        
        //强制类型转换
        double m1 = 3.98;
        int m2 = (int)m1;
        System.out.println(m2);
        
        char m3 = 'c';
        int m4 = m3+2;
        char m5 = (char)m4;
        System.out.println(m5);
        
        //当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成一个完全不同的值。
        
        int n1 = 300;
        byte n2 = (byte)n1;
        System.out.println(n2);
        
        //溢出错误:操作比较大的数,要留意是否溢出.
        int salary = 1000000000; //10亿
        int years = 30;
        int total01 = salary*years;
        long total02 = 1L*salary*years;
        
        System.out.println(total01);
        System.out.println(total02);
    }
}

/**
 * 测试键盘输入
*/
import java.util.Scanner;

public class TestSystemIn {
    
    public static void main(String[] args){    
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入您的账户名:");
        String username = scanner.nextLine();
        System.out.println("账户名:"+username);
        
        System.out.println("请输入年龄:");
        int age =scanner.nextInt();
        
        System.out.println("请输入月薪:");
        double salary =scanner.nextDouble();
        
        System.out.println("=======录入的信息如下=======");
        System.out.println("账户名:"+username);
        System.out.println("年龄:"+age);
        System.out.println("年薪:"+salary*12);
        System.out.println("月薪:"+salary);
    }
}

/**
 * 测试键盘输入
*/
import java.util.Scanner;

public class TestSystemIn {
    
    public static void main(String[] args){    
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入您的账户名:");
        String username = scanner.nextLine();
        System.out.println("账户名:"+username);
        
        System.out.println("请输入年龄:");
        int age =scanner.nextInt();
        
        System.out.println("请输入月薪:");
        double salary =scanner.nextDouble();
        
        System.out.println("=======录入的信息如下=======");
        System.out.println("账户名:"+username);
        System.out.println("年龄:"+age);
        System.out.println("年薪:"+salary*12);
        System.out.println("月薪:"+salary);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aheyor编程1041

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值