Java学习 (六)基础篇 类型转换

打印 上一主题 下一主题

主题 997|帖子 997|积分 2991

类型转换


  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
  1.                   字节大小(容量)->
  2. 低--------------------------------------------->高
  3. byte,short,char -> int -> long -> float -> double
复制代码

  • 小数的优先级一定大于整数
  • 运算中,不同类型的数据先转化为同一类型,然后再进行运算
强制类型转换


  • 数据类型从高到低转换则为强制转换        (类型)变量名
  • 数据类型从低到高转换则为自然转换,不需要添加任何字符
  1. //强制转换
  2. int i = 128;                //128
  3. byte b = (byte) i;        //-128
  4. double c = i;                //128.0
  5. //精度问题
  6. System.out.println((int)23.7);                //23.7
  7. System.out.println((int) -45.8f);        //-48.8
  8. //类型转换
  9. char d = 'a';
  10. int e = d+1;
  11. System.out.println(e);                        //98
  12. System.out.println((char) e);        //b
复制代码

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换为低容量时,需要进行强制转换
  • 转换过程中可能出现内存溢出,或者精度问题
  1. int mon = 1000000000;
  2. int mon1 = 10_0000_0000;
  3. int year = 20;
  4. int total = mon*year;
  5. System.out.println(mon);    //1000000000
  6. System.out.println(mon1);   //1000000000
  7. System.out.println(total);  //超出类型容量,为-1474836480
  8. long total1 = mon*(long)year;//将数据类型转换成更高数据类型,并在后面单位添加该类型
  9. System.out.println(total1); //输出正常,20000000000
复制代码

  • 如果数值超出类型数据容量,则会内存溢出,并随机输出值
  • 操作比较大的数值时,注意溢出问题
  • JDK新特性,数值比较大时,可以用下划线分割,每4位分割

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

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

立山

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