010_尚学堂_高淇_最全java视频培训课程_基本数据类型自动转换_强制转型_类型提升问题..docxVIP

010_尚学堂_高淇_最全java视频培训课程_基本数据类型自动转换_强制转型_类型提升问题..docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
010_尚学堂_高淇_最全java视频培训课程_基本数据类型自动转换_强制转型_类型提升问题.

尚学堂JAVA最全教程配合JAVA300集视频课程,一集一个文档本文档配合:java300集第一季010集【最新文档更新请加入尚学堂】【专业JAVA培训机构,真正零首付入学】自动类型转换:自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失。特例:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围Short b = 12; //合法shortb = 1234567;//非法强制类型转换(Cast):强制类型转换,又被称为造型,用于显式的转换一个数值的类型.在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。强制类型转换的语法格式:“(type)var”,运算符“()”中的type表示将值var想要转换成的目标数据类型。例如:double x = 3.14; int nx = (int)x; //值为3char c = a;int d = c+1;System.out.println(d);System.out.println((char)d);当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。例如: int x = 300; byte bx = (byte)x; //值为44不能在布尔类型和任何数值类型之间做强制类型转换。如果需要把布尔类型转换成一个数字该怎么办呢?基本类型转化时常见错误和问题:操作比较大的数时,要留意是否溢出,尤其是整数操作时。int money = 1000000000; //10亿int years = 20;int total = money*years; //返回的是负数longtotal1 = money*years; //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失long total2 = money*((long)years); //先将一个因子变成long,整个表达式发生提升。全部用long来计算。L和l 的问题:不要命名名字为l的变量long类型使用大写L不要用小写。int l = 2;long a = 23451l;System.out.println(l+1);课堂代码//测试自动转型和强制转型publicclassTestCast {publicstaticvoid main(String[] args){/*byte b = 123;//byte b2 = 300;//char c = -3;char c2 = a;int i = c2;long d01 = 123213;float f = d01;//测试强制转型int i2 = -100;char c3 = (char)i2; //-100超过char的表数范围,所以转换成完全不同的值,无意义的值!System.out.println(c3);*//*//表达式中的类型提升问题int a = 3;long b = 4;double d = 5.3;int c = (int)(a+b); //做所有的二元运算符(+-/*%),都会有类型提升的问题!float f = (float)(a + d);*/int money = 1000000000; //10亿int years = 20;long total = (long)money*years; //返回的是负数System.out.println(total);//一个人70年心跳多少次long times = 70L*60*24*365*70;System.out.println(times);}}

文档评论(0)

518100 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档