数据类型及其转换

数据类型扩展

  • 少用浮点数(float,double)比较,用BigDecimal(数学工具类)
  • 所有字符的本质还是数字,int类型转换
public class Demo1 {
    public static void main(String[] args) {
       //整数扩展
        int num1=10;//十进制
        int num2=010;//八进制
        int num3=0x10;//十六进制
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);

        //浮点数扩展(例子:银行业务)  BigDecimal(数学工具类)
        float a1=2346789123f;
        double a2=a1+1;
        float a3=0.1f;//0.1  //float 有限,离散,误差,大约,接近于,所以a1和a2结果相差不大,机器默认一样
        float a4=1/10;//0.1
        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a1==a2);//等号要用==,不能用=//true
        System.out.println(a3==a4);//false

        //字符扩展
         char c1='a';
         char c2='田';
         char c3='\u0061';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换int要用括号括起来
        System.out.println(c2);
        System.out.println((int)c2);
        System.out.println(c3); //可以用\u0000,\uFFFF表示
        
         //布尔值扩展(一般用来做些判断)
        boolean flag=true;
        if(flag){
            System.out.println("你是对的");
        }
        }
    }

数据类型转换

  1. 由于Java是强类型语言,在进行有些运算的同时,需要进行类型转化

  2. 由低到高:byte-short-char-int-long-float-double

  3. 强制类型转换:(类型)变量名

  4. 强制转换 由高到低

  5. 自动转换 由低到高

* 注意事项:
    1.不能对布尔值进行转换
    2.不能把对象类型转换成不相干的类型
    3.将高容量数据类型转换为低容量数据类型,进行强制转换
    4.转换的时候可能出现内存溢出,或者精度问题
public class Demo2 {
    public static void main(String[] args) {
        int a=10;
        byte b=(byte)a;//int转换为byte类型(高到低)强制转换
        System.out.println(a);
        System.out.println(b);
        System.out.println("=============");
        int c=10;
        double d=c;//int转换为double类型(低到高)自动转换
        System.out.println(d);
        System.out.println("============");
        
        char e='A';
        int f=e+1;
        System.out.println(e);//字符型
        System.out.println(f);//int型
        System.out.println((char)f);
        
        System.out.println("=============");//以上第4点
        System.out.println((int)23.7);//出现精度问题,=23
        System.out.println((int)-23.7f);//=-23
        System.out.println("=============");
        
        //计算大的数时,注意数据溢出, 前面两个Int默认为整型结果也是整型,从而最终结果并不是正确的值
        // 方法:进行数据转换,修改其中一个为更大数据容量
        int money1=10_0000_0000;
        int years1=15;
        int total1=money1*years1;//=2115098112(结果错误)
        System.out.println(total1);

        int money2=10_0000_0000;
        int years2=15;
        long total2=money2*(long)years2;//=150_0000_0000(结果正确)
        System.out.println(total2);

    }
}

转义字符

\t 制表符
\n 换行符
\b 退格符
\r 回车符
\\ 输出\
\' 输出'
  System.out.println("Hello\tword");//横向跳格(跳到下一制表的位置)
        System.out.println("Hello\nword");//换行
        System.out.println("Hello\bword");//退格
        System.out.println("Hello\rword");//回车
        System.out.println("Hello\\word");//反斜杠字符\
        System.out.println("Hello\'word");//单引号字符‘

在这里插入图片描述
age-20221006152539354.png)]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值