大白话理解Java:数据类型转换

Java的数据类型共有8种:

  • byte:1字节(8位)
  • short:2字节(16位)
  • int:4字节(32位)
  • long:8字节(64位)
  • float:4字节(32位)
  • double:8字节(64位)
  • char:2字节(16位)
  • boolean:4字节(32位),在数组中1字节(8位)

基本数据类型没有什么好说的,类型越小占用内存空间越小。至于为什么分出这么多类型,还是为了节省内存空间。

能点小杯我就不花超大杯的钱。

主要不好理解的点在于数据类型转换

这里只拿int类型数据和long类型数据做一个比喻:int是一个4立方小箱子,long是一个8立方大箱子。int箱子里装了占地4立方的一张床,long箱子里装了占地4立方的一张桌子。

那么问题来了,现在要把床和卓子互相交换箱子存放,理论上没问题。

但是int箱子的主人不同意了:”我箱子比你的箱子小,你箱子里的东西放我这,不一定放得下“。

即使long箱子里面只装了一张4立方的桌子,int箱子确实放得下,但int的主人也不敢冒这个险。你说放得下就放得下吗?万一撑爆了呢?

除非拿出证据来。

而反过来,把int箱子里面的床搬出来放到long箱子里是可以的,long箱子的主人也不需要猜床是否能放进long箱子。

因为int箱子比long箱子小,床既然能放进int箱子里,那放进long箱子里就更不用说了。

数据类型转换就是这样一个概念,高精度的long数据转换成低精度的int数据,系统就会报错(低容积的int主人认为箱子有裂开的风险,拒绝和long箱子进行交换),而低精度的int数据转换成高精度的long数据,就容易得多。

那有什么办法把桌子放进int箱子呢?这里就涉及到强制转换的概念了。

long箱子的主人可以出具一张”经本机构专业测量,此桌占地3立方“的报告(在需要强转的代码前添加(int)代码,把long数据手动改为int数据),这样int箱子的主人看到报告,就能够确认他的箱子可以容纳long箱子的东西,就可以放心地和long箱子的主人互换物品了。

但如果long数据超过了int数据的最大值(假设把long箱子的桌子突然变成8立方的台球桌,这样就超出了int箱子的最大存放容积),即便强制转换,还是会出问题。因为这样做,存在数据溢出的风险(把贴了认证报告的台球桌强行放进int箱子,就真的会裂开)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值