Java基础之 类型转换

种地  金牌会员 | 2022-8-22 08:12:41 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 933|帖子 933|积分 2799

Java基础之 类型转换


  • 注释、标识符、关键字
  • 数据类型
  • 类型转换
  • 变量、常量
  • 运算符
  • 包机制、JavaDoc
类型转换


  • 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换

 
 

  • 运算中,不同类型的数据线转化为同一类型,然后进行运算


  • 强制类型转换
  • 自动类型转换
  1. 1  public class Demo05 {
  2. 2  ​
  3. 3      public static void main(String[] args) {
  4. 4          int i = 128;
  5. 5          byte b = (byte)i;  //内存溢出  (类型)变量名
  6. 6  ​
  7. 7          //强制转换  高--->低
  8. 8          //自动转换  低--->高
  9. 9          System.out.println(i);
  10. 10          System.out.println(b);
  11. 11         
  12. 12          System.out.println((int)23.7);//23
  13. 13          System.out.println((int)-45.89f);//-45
  14. 14         
  15. 15          char c = 'a';
  16. 16          int d = c+1;
  17. 17          System.out.println(d);//98
  18. 18          System.out.println((char)d);// b
  19. 19      }
  20. 20  }
复制代码
 
  1.  
复制代码
小结:

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 再把高容量转换到低容量的时候,强制转换
  • 转换的时候可能存在内存溢出,或者精度问题


  • 操作比较打的数字时,注意溢出问题
  • JDK 7 新特性,数字之间可以用下划线分割
  1. 1  public class Demo06 {
  2. 2      public static void main(String[] args) {
  3. 3         
  4. 4          int money = 10_0000_0000;
  5. 5          int years = 20;
  6. 6          int total = money*years; // -1474836480    计算的时候溢出了
  7. 7          long total2 = money*years; // 默认是 int,转换之前已经存在问题了
  8. 8  ​
  9. 9          long total3 = money*((long)years); // 先把一个数转换为 long
  10. 10          System.out.println(total3);
  11. 11      }
  12. 12  }
复制代码
 
  1.  
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表