黑马程序员--01.赋值语句练习【个人总结】
来源:互联网 发布:程序员外派 编辑:程序博客网 时间:2024/05/18 01:42
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学习型技术博客、期待与您交流! ------------
- 黑马程序员--01.赋值语句练习【个人总结】
- 黑马程序员--02.Java语言基础--01.赋值语句练习2【个人总结】
- 黑马程序员-switch语句练习
- 黑马程序员-if 语句练习
- 黑马程序员-SQL语句总结
- 黑马程序员-循环语句总结
- 黑马程序员 if 语句及练习
- 黑马程序员-JAVA if语句练习
- 黑马程序员---------委托与事件个人总结
- 黑马程序员 java中的线程个人总结
- 黑马程序员-java 常见问题【个人总结】
- 黑马程序员-java 面向对象【个人总结】
- 黑马程序员----【javaSE基础】个人总结--static
- 《黑马程序员》java内部类个人总结
- 黑马程序员Java 多继承个人总结
- 黑马程序员 Collection 集合的个人总结
- 黑马程序员 Map集合的个人总结
- #黑马程序员------基础习题练习总结
- 多线程编程(12) - 多线程同步之 Semaphore (信号对象)(转自万一博客)
- iOS应用审核的通关秘籍
- Dialog总结
- 等待消失的任务
- 每日一题(37) - 两个队列实现栈
- 黑马程序员--01.赋值语句练习【个人总结】
- Android 中创建avd和sdcard
- 多拉送了一些鸡蛋给圭多,意味深长地目送他远去。
- 2354:整理试卷
- MasonJS – 创建完美的砌体结构网页布局
- Android AVD创建及设置中各参数详解
- 解决ie8 中 focus函数不好使问题
- 获取当前用户的名字
- android中listView下拉刷新