变量系列教材 (四)- 在Java中进行基本类型的类型转换
不同类型之间的数据可以互相转换,但是要满足一定的规则
步骤1:转换规则
步骤2:低精度向高精度转换
步骤3:高精度向低精度转换
步骤4:练习-类型转换
步骤5:答案-类型转换
步骤 1 : 转换规则

转换规则如图所示
精度高的数据类型就像容量大的杯子,可以放更大的数据
精度低的数据类型就像容量小的杯子,只能放更小的数据
小杯子往大杯子里倒东西,大杯子怎么都放得下
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出
需要注意的一点是
虽然short和char都是16位的,长度是一样的
但是彼此之间,依然需要进行强制转换

public class HelloWorld { public static void main(String[] args) { char c = 'A';short s = 80; //虽然short和char都是16位的,长度是一样的//但是彼此之间,依然需要进行强制转换c = (char) s;//直接进行转换,会出现编译错误s = c; }}

步骤 2 : 低精度向高精度转换

long l = 50;int i = 50;

l 是long类型的,其类型长度是64位
i 是int类型的,其类型长度是32位
所以l的精度,比i的精度要高
l = i;
把i的值赋给l, 首先l和i彼此的类型是不一样的,那么能否转换就取决于彼此的精度
这个例子,是低精度向高精度转换 是可以正常转换的
换句话说,int比较小,要放进比较大的long,随便怎么样,都放的进去

public class HelloWorld {  public static void main(String[] args) {  long l = 50;int i = 50; //int比较小,要放进比较大的long,随便怎么样,都放的进去l = i;  }}

步骤 3 : 高精度向低精度转换

byte b = 5;int i1 = 10;int i2 = 300;b = i1;b=i2;

b的类型是byte,其长度是8,最大只能放127
i1 的类型是int, 其长度是32,最大,反正就是很大了,超过127
所以, 把int类型的数据转成为byte类型的数据,是有风险的
有的时候是可以转换的,比如 b = i1 (i1=10);
有的时候不可以转换 比如 b= i2 (i2=300) 因为放不下了
编译器就会提示错误
这个时候就只能采用强制转换,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责。 风险自担,后果自负

public class HelloWorld {  public static void main(String[] args) {  byte b = 5;int i1 = 10;int i2 = 300;          b = (byte) i1;//因为i1的值是在byte范围之内,所以即便进行强制转换//最后得到的值,也是10System.out.println(b);  //因为i2的值是在byte范围之外,所以就会按照byte的长度进行截取//i2的值是300,其对应的二进制数是 100101100//按照byte的长度8位进行截取后,其值为 00101100 即44b =(byte) i2;System.out.println(b); //查看一个整数对应的二进制的方法:System.out.println(Integer.toBinaryString(i2)); }}

更多内容,点击了解: https://how2j.cn/k/variable/variable-transfer/264.html

©著作权归作者所有:来自51CTO博客作者wx5c4afeea27343的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【DB笔试面试462】如何将一个数字转换为字符串并且按照指定格式
  2. LOW_VALUE、HIGH_VALUE、ENDPOINT_VALUE转换--UTL_RAW、DBMS_STA
  3. Web页面或URL转换为PDF的在线工具
  4. Bitlocker分区转换失败的恢复案例
  5. 【GoCN酷Go推荐】Go 类型转换神器 cast库
  6. PO BO VO DTO POJO DAO概念及其作用(附转换图)
  7. 【DB笔试面试591】在Oracle中,什么是星型连接(Star Join)?
  8. MySQL之left join表查询中发生字符集转换导致表索引失效
  9. 【DB笔试面试618】在Oracle中,“OR扩展”可以有查询转换吗?

随机推荐

  1. 人物社交网络分析—平凡的世界
  2. 用Node.js把HTML转成PDF格式[每日前端夜
  3. Python数据科学:Logistic回归
  4. Python表白?别傻了,女神是拿来撩的!
  5. 用Node.js创建安全的 GraphQL API[每日前
  6. 奥斯卡,究竟谁一直在陪跑。
  7. 如何正确使用Node.js事件[每日前端夜话0x
  8. JavaScript 中的强制类型转换[每日前端夜
  9. 大江大河,一代人的缩影。
  10. 用Python生成抖音字符视频!