黑马程序员技术交流社区

标题: Java数据类型转换 [打印本页]

作者: 扬帆起航fonnson    时间: 2016-7-1 13:11
标题: Java数据类型转换
本帖最后由 扬帆起航fonnson 于 2016-7-1 13:30 编辑

我对byte short char int等基本数据类型之间的转换一直没有清晰的概念,今天百度发现了一个好帖子,搬运过来与大家分享。
先说一个比较特殊的boolean类型,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

虚线箭头意为如果此int型数值尚在char、byte范围内,jvm会自定进行一次隐式类型转换,将此int型数值转换成char、byte类型。
char型其本身是unsigned型,同时具有两个字节,其数值范围是0 ~ 2^16-1,因为,这直接导致byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升(因为负数的问题),同时,byte当然可以直接提升到short型。  byte p = 3; // 编译正确:int到byte编译过程中发生隐式类型转换  int  a = 3;  byte b = a; // 编译出错:cannot convert from int to byte  byte c = (byte) a; // 编译正确3是直接量,编译期间可以直接进行判定,后者a为一变量,需要到运行期间才能确定,也就是说,编译期间为以防万一,当然不可能编译通过了。此时,需要进行强制类型转换。摘了一些我的疑问,原帖有详细讲解带例子,地址:http://www.cnblogs.com/lwbqqyumidi/archive/2014/04/29/3700164.html


作者: 他的好    时间: 2016-7-1 21:45
  学习了
作者: 940752944    时间: 2016-7-1 21:50
很详细!!!
作者: 芒果小姐    时间: 2016-7-1 23:14
好详细呀``涨姿势了
作者: 安生安徒生    时间: 2016-7-1 23:19
学习了,mark




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2