JAVA数据类型转换自学笔记

数据类型转换


基本概念

强制类型转换,可以理解为自动类型转换的逆过程,是将大容量的数据类型转换为小容量的数据类型,使用时在前面加上强制转换符号“()”;

应用场景

需要将数据从高精度数据类型转换为低精度数据类型。(即高精度类型的数据不能直接赋值给低精度数据)

JAVA中数据类型的精度从高到低的顺序为:

  • byte

  • short

  • char

  • int

  • long

  • float

  • double

注意点

  • 运算中,不同类型的数据是先转换为同一类型然后再运算

  • boolean类型是不可以进行转换的

  • 不能把对象类型转换为不相干的类型

  • 高容量类型转低容量的时候需要用强制转换

  • 转换的时候可能存在内存溢出,或者精度问题!

代码演示

         int i = 128;
         byte b = (byte)i;
         System.out.println(b); //这里内存已经溢出,会变成不一样的数据 byte的范围是(-128-127)
         System.out.println("========================");
         i = b; // 这里可以不用强制转换符,从低到高是自动隐式转换的
         System.out.println(i);
         System.out.println("========================");
         float f1 =  12.56f;
         double d1 = 45.78;
         System.out.println((int)d1);// 转换后精度缺少
         System.out.println((int)f1);// 转换后精度缺少
         System.out.println("========================");
         char c1 = 'a';
         int i1 = c1+1;
         System.out.println((char)i1); //在ASCII码对应表中找到对应整数的字符

JAVA JDK7 拓展

 int money = 10_0000_0000;// jdk7的新特性 可以在数字之间加下划线了
 int years = 20;
 int total = money*years;// 内存溢出
 long total = money*(long)years; //  运算的时候已经出问题了,解决方法就是先转换
 System.out.println(total);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值