首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室Linux频道
中国IT教育
 
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 文章正文

Java入门:java中不同类型的转换和提升

文章来源中国IT实验室收集整理 作者佚名 更新时间2008-1-29 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  byte转换为int时出现的问题是始料不及的,byte的范围0~255,但是转换为int的时候却出现了负值,这种突然的变化惹了很大的麻烦。当时心情急躁,匆匆忙忙试了几种方法通过后就继续项目了,但真正的原因在什么地方一直没能解决,成了心病。后来想起来曾经阅读过java的语言规范说明书,里面有提到这些内容,于是抽时间再回顾一下,希望能搞通这些东西。

  在java语言中,转换可以分为七大类:

  一、Identity conversions(同类转换)。

  看起来没有什么用,但却是整个转换体系的基石。提示:boolean基本类型只能进行同类转换。

  二、Widening primitive conversions(基本类型扩宽转换)。

  以所占字节数为基准,单字节向多字节转换就是所谓的扩宽,比如1到2、2到4等。int到其他整数类型的转换、float到double是没有失真的,完全一致。但是整数到浮点数的转换虽然也是扩宽,但因为浮点数是用有效数字的方式进行表示的,转换的时候可能出现精度损失(float类型不能支持9位有效数字),如int i=1234567890;float pp = i - (float)i;pp不等于零。带符号int转换为其他整数类型的方法是对其数字的二位补码方式进行带符号扩展,char类型转换为int类型的方法是进行0扩展。提示:无论精度是否损失,扩宽转换都不能引发运行时错误。

  三、Narrowing primitive conversions(基本类型缩窄转换)。

  带符号的整数缩窄为其他整数类型时只保留低位的值,除了精度损失外还可能出出现符号改变。char缩窄为其他整数类型时也可能出现负值,尽管char是无符号数。

  四、Widening reference conversions(引用类型扩宽转换)。

  子类到父类。提示:数列也是引用类型。

  五、Narrowing reference conversions(引用类型缩窄转换)。

  父类到子类。

  六、String conversions(字符串转换)。

  七、Value set conversions(值域转换)。

  专指浮点数。

  转换发生在五种情况下,分别是Assignment conversion(赋值转换)、Method invocation conversion(方法激活时的转换)、Casting conversion(造型转换)、String conversion(字符串转换)、Numeric promotion(数值提升)。

  发现了一个有用的方法,数值用不同的进制表示可以用Long.toString(l,16);Integer,toString(i,8);可以任意使用。

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题
 ·展现C#世界 C#程序设计专题
 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 ·JAVA开发利器——JBuilder知多少
 ·Hello,web2.0技术进阶专题
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航