说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示。

重新温故了下原始数据类型,现在来解释下它们之间的转换关系。

自动类型转换

自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。

如:

long l = 100;

inti = 200;

long ll = i;

具体自动转换如如下图所示。

实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。

自动转换也要小心数据溢出问题,看下面的例子。

intcount= 100000000;

intprice = 1999;

long totalPrice = count*

price;

编译没任何问题,但结果却输出的是负数,这是因为两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的代表范围。这种情况,一般把***个数据转换成范围大的数据类型再和其他的数据进行运算。

intcount= 100000000;

intprice = 1999;

long totalPrice = (long) count* price;

另外,向下转换时可以直接将 int 常量字面量赋值给 byte、short、char 等数据类型,而不需要强制转换,只要该常量值不超过该类型的表示范围都能自动转换。

强制类型转换

强制类型转换我们再清楚不过了,即强制显示的把一个数据类型转换为另外一种数据类型。

如:

short s = 199;

inti = s;

// 199

doubled = 10.24;

long ll = (long) d;

// 10

以上的转换结果都在我们的预期之内,属于正常的转换和丢失精度的情况,下面的例子就一样属于数据溢出的情况。

intii = 300;

byte b = (byte)ii;

300 已经超出了 byte 类型表示的范围,所以会转换成一个毫无意义的数字。

类型提升

所谓类型提升就是指在多种不同数据类型的表达式中,类型会自动向范围表示大的值的数据类型提升。

把上面的溢出的例子再改下。

longcount= 100000000;

intprice = 1999;

long totalPrice = price * count;

price 为 int 型,count 为 long 型,运算结果为 long 型,运算结果正常,没有出现溢出的情况。

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

java自动类型提升_Java中的基本数据类型转换(自动、强制、提升)相关推荐

  1. java 基本类型 引用_java中 引用类型 和 基本类型 有何区别?

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newa ...

  2. java 类型转换方法_Java中的实用类型转换的方法

    Java中的实用类型转换的方法 1,              类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...

  3. java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别

    基本类型: 基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值. 引用类型: 是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组 ...

  4. java long类型判断_Java中的long类型和Long类型比较大小

    Java中我们经常要做一些判断,而对于判断的话,用的最多的便是">"."=="." Java中Long和long的区别 Java的数据类型分为两 ...

  5. java枚举类型定义_java中的枚举类型怎么定义?

    展开全部 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自62616964757a686964616fe59b9ee7ad9431333236366331己的变量, ...

  6. java long类型大小_java中long类型占多少字节

    所谓的占用字节数 就是申请内存的时候所占的空间大小. long 8字节 最小值是 -9,223,372,036,854,775,808(-2^63): 最大值是 9,223,372,036,854,7 ...

  7. Java中的基本数据类型转换(自动、强制、提升)

    转载自 Java中的基本数据类型转换(自动.强制.提升) 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数 ...

  8. 基本数据类型转换 || 自动类型转换与强制类型转换

    基本数据类型转换 自动类型转换 强制类型转换

  9. char强制类型转换为int_彻底理解Java中的基本数据类型转换(自动、强制、提升)...

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 之前分享过<深入浅出 Java 中的包装类>,现在重新温故了下原 ...

最新文章

  1. 演示:GLBP跟踪功能、权值、与不同的负载均衡方式
  2. (转载)OC学习篇之---KVC和KVO操作
  3. 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接(转载)
  4. Windows10系统Python2.7通过Swig调用C++过程
  5. Mac 10.12安装迅雷2.7.2
  6. Iptables 指南
  7. 家居品牌如何在小红书上推广?家居产品推广看这里
  8. 【PyTorch】SiLU激活函数
  9. 拼多多爆款选择要分析哪些数据?如何采集这些爆款到拼多多?
  10. 网络嗅探与身份认证-实验二
  11. android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片
  12. 微信红包封面免费送!!!
  13. acrobat PDF删除部分_PDF原来可以这么玩
  14. 随机森林 n_estimators参数 max_features参数
  15. OS实战笔记(4)-- 虚拟地址和物理地址的转换
  16. shell 脚本 : 获取当前路径与当前路径下的目录列表
  17. 阿里maven远程仓库地址
  18. 盘点4个实用视频格式转换方法!mkv、mp4、avi等格式互相转!
  19. java俄罗斯方块设计报告,俄罗斯方块课程设计报告
  20. 数学图形之海螺与贝壳

热门文章

  1. 算法笔记_167:算法提高 矩阵翻转(Java)
  2. 使用反射修改final属性
  3. 【工具】CodeSmith Generator 7.0.2激活步骤
  4. 安全狗服云PC端V2.5.1发布 助力服务器安全运维
  5. 用python监控您的window服务
  6. TWebBrowser 与 MSHTML(3): window 对象的属性、方法、事件纵览
  7. python machinelearning下载_Python与机器学习系列1:Anaconda的下载与安装
  8. 全栈性能测试修炼宝典jmeter实战电子版_JMeter实战(一) 体系结构
  9. 高性能地图服务器,电子地图的背后—超速海量Xeon5500机架服务器
  10. C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...