郑州游戏学院—陈跃峰老师的博客

人生难得几回博,来,让我们博一把

陈跃峰ID:Mailbomb
713522次访问,排名45好友100人,关注者290
努力学习,努力工作
Mailbomb的文章
原创 279 篇
翻译 12 篇
转载 11 篇
评论 1199 篇
陈跃峰的公告
陈跃峰 个人简历
cqucyf@gmail.com

本BLOG中文章,未经允许严禁用于商业目的!

本人编写的J2ME基础入门书籍: 《新编J2ME就业培训教程》,购买
dearbook
华储网
当当网
Chinapub
最近评论
想我有奖:第n/10行n%10列
小晓:有更深一点的内容吗?
过往云烟:我下载不了啊
beishion:似乎可以出书了,还是准备出书?
casion001:好事成双啊!学习中啊!楼主辛苦叻
文章分类
收藏
    相册
    J2ME技术
    J2ME开发网
    无线空间
    Java网站
    Eclipse官方网站
    Sun中国
    Sun官方网站
    常用网站
    Chinabyte
    Google搜索引擎
    华军软件园
    新浪新闻
    网上书店
    ITbook
    互动出版网
    当当书店
    第二书店
    我工作过的地方
    上海托普信息技术学院
    游戏学院南京校区
    游戏学院郑州校区
    电脑报
    友情链接
    acqy的专栏
    eiyaa的专栏
    上海求职客栈
    刀剑啸的专栏
    刘军的BLOG
    王新钢的BLOG
    贝壳鱼(k7sem)专栏
    骄傲的猫
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Java编程那些事儿19—数据类型转换收藏

    新一篇: Java编程那些事儿20—空白、语句结束和注释 | 旧一篇: Java编程那些事儿18——变量和常量

     
    Java编程那些事儿19—数据类型转换
    作者:陈跃峰
    3.7 数据类型转换
             Java语言是一种强类型的语言。强类型的语言有以下几个要求:
    变量或常量必须有类型
    要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。
    赋值时类型必须一致
    值的类型必须和变量或常量的类型完全一致。
    运算时类型必须一致
    参与运算的数据类型必须一致才能运算。
             但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种需要,这个语法就是数据类型转换。
             在数值处理这部分,计算机和现实的逻辑不太一样,对于现实来说,1和1.0没有什么区别,但是对于计算机来说,1是整数类型,而1.0是小数类型,其在内存中的存储方式以及占用的空间都不一样,所以类型转换在计算机内部是必须的。Java语言中的数据类型转换有两种:
    自动类型转换
    编译器自动完成类型转换,不需要在程序中编写代码。
    强制类型转换
    强制编译器进行类型转换,必须在程序中编写代码。
             由于基本数据类型中boolean类型不是数字型,所以基本数据类型的转换是出了boolean类型以外的其它7种类型之间的转换。下面来具体介绍两种类型转换的规则、适用场合以及使用时需要注意的问题。
    3.7.1 自动类型转换
             自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。
    转换规则
    从存储范围小的类型到存储范围大的类型。
    具体规则为:
             byte→short(char)→int→long→float→double
    也就是说byte类型的变量可以自动转换为short类型,示例代码:
             byte b = 10;
             short sh = b;
    这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。
    在类型转换时可以跳跃。示例代码:
             byte b1 = 100;
             int n = b1;
    注意问题
    在整数之间进行类型转换时,数值不发生改变,而将整数类型,特别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。
    3.7.2 强制类型转换
             强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。
    转换规则
    从存储范围大的类型到存储范围小的类型。
    具体规则为:
             double→float→long→int→short(char)→byte
    语法格式为:
             (转换到的类型)需要转换的值
    示例代码:
             double d = 3.10;
             int n = (int)d;
    这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
    示例代码:
             int n = 123;
             byte b = (byte)n;
             int m = 1234;
             byte b1 = (byte)m;
    则b的值还是123,而b1的值为-46。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,该值就是十进制的-46。
    注意问题
    强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。
    3.7.2 其它
             后续的复合数据类型,如类和接口等,也存在类似的转换。

    发表于 @ 2008年05月15日 18:30:08|评论(loading...)|编辑

    新一篇: Java编程那些事儿20—空白、语句结束和注释 | 旧一篇: Java编程那些事儿18——变量和常量

    评论

    #casion001 发表于2008-07-17 10:53:44  IP: 218.28.134.*
    好 不错啊!在这里好好热身一下,再好好的去学习哦!
    谢谢楼主的劳动果实啊!
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 陈跃峰