黑马程序员--01.赋值语句练习【个人总结】
2013-07-16 17:20
239 查看
Java赋值语句举例练习
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------下列Java变量初始化赋值语句编译能通过么?为什么?(仅仅局限于初始化的过程)
变量初始化的时候:出现浮点型数据的时候:这种题要分两步考虑:
Step1. 浮点型常量值是什么类型的。如果没有标示,默认是什么类型的
这一步非常重要!!!也是必须考虑的
Step2. 左边的浮点型变量的类型是否和右边的浮点型常量的值的类型一致
如果一致:就看这个常量表示的值的大小是不是符合左边变量本身表示的范围之内
如果不一致:左边的浮点类型double高于右边的float 编译仍然正确
左边的浮点类型float低于右边的double 编译错误 因为 浮点类型
的小数点是位置是未知的。如果double类型的常量赋给float类型的变量,很可能这个double类型的常量存储进去之后,由于float表达的精度不够而出现精度损失。
变量初始化的时候:对于整型变量之间的赋值,只要是右边常量的值在左边的范围之内就可以。因为整型没有小数点,所以范围不超就可以保证精度不损失
结论:
所以以上两点可以看出来:精度可能损失是变量初始化赋值能否正确与否的根本原则。
如果一定不会损失精度,那就一定编译正确
否则不一定损失就一定编译错误。
浮点数据库麻烦在:它里面有小数点,小数点的位置未知。所以考虑起来要比整形数据要麻烦点。
[1]. byte b =2;
//正确 因为byte占一个字节 范围就是-128~127 2(尽管2默认是int 但是存储进去 不损失精度) 在这个范围之内 所以赋值正确
[2]. byte b =128;
//错误 超出byte表示的范围
[3]. short s =30000; //short的范围是-32767~32768 30000没超范围 正确
[4]. long l =4l; //正确
[5]. float f =2.3; //错误!!2.3本身默认是double类型的 double赋值给float精度可能会损失,所以编译一定出错
[6]. float f =2.3f; //正确。浮点数据两边类型匹配,不会出现精度损失。编译正确
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
相关文章推荐
- 黑马程序员--02.Java语言基础--01.赋值语句练习2【个人总结】
- 黑马程序员--05.String字符串类--01. String s1=new String (a)内存图【个人总结】
- 黑马程序员—java毕老师视频个人总结01
- 黑马程序员--03.面向对象--01.静态方法调用非静态成员【个人总结】
- 黑马程序员----【javaSE基础】个人总结--代码块
- selenium 自动化测试指南学习 入门总结及练习01
- 个人总结/个人练习代码库/Binder连接
- 个人总结01
- 01背包,完全背包,多重背包的个人总结
- 黑马程序员 一些个人总结的小基础知识点
- 黑马程序员----------各集合系列的特点(个人学习总结)
- 【黑马程序员】---C语言数据类型总结01
- 个人工作总结01(第二阶段)
- 黑马程序员——Java学习总结:IO常用方法练习
- 黑马程序员--03.面向对象--03.子类父类方法重写和覆盖的理解【个人总结】
- 团队开发 个人工作总结01
- 黑马程序员_C语言01_基础总结
- 黑马程序员----【javaSE基础】个人整理--static总结
- 第二阶段个人总结01
- 黑马程序员--07.集合框架--并发访问异常理解:一个单线程程序的多线程运行思想【个人总结】