java菜鸟的回炉之旅之四----整型数据类型和浮点数数据类型
来源:互联网 发布:腾讯网络电影合作流程 编辑:程序博客网 时间:2024/06/05 15:19
懒癌发作,该死。今天继续复习数据类型,尽可能详细一点。如下:
整数类型:
1、java之所以使强类型的计算机语言的原因是因为java应用领域设计的时候就设计得很广,所以必须要有明确的约束限制,才能更好地运用与各个领域,因为不同的应用场景下,内存空间的宝贵程度是不同的。
2、整数分为四种:byte、short、int、long
3、整数的声明:整数数据类型 变量名 = 变量;对应为 int a = 4;意思是把4赋值给int类型的变量a;如果理解为int类型的整数变量a = 4;这样理解不是很严谨,因为在java中一个等号“=” 表示的是赋值,而不是等于 ,等于在java中 用双等号 表示“==”。
4、我们说byte 是1个字节的占用空间,表示范围为-128----127;怎么理解呢?这样理解:1个字节是8位 每一位有2个状态(二进制,分别用0和1表示断电状态和通电状态),所以1个字节 可以表示2的8次方的状态 也就是256个状态,就相当于256个数字,那在java中数据有正负之分,所以从中间各取一半,那为什么是正的127而不是128呢?这是因为0也算以为。所以byte表示的数据范围就是负的128到正的127.其他类型的基本数据类型的表示范围道理大致一样。所以:byte a = 127;正确,但byte b= 128;则会报错,因为超出byte的表示范围了。在工作中设计数据类型的时候,就需要考虑数据类型的表示范围是不是合适了。比如 用byte来表示 月薪,那就是很不合适的。
5、整型的数据类型有 byte、short、int、long四种类型可以选,那整型常量的默认数据类型是哪个呢?Java默认整型常量的数据类型是int。为什么呢?因为王八的屁股,规定。
6、在不同的数据类型当中,如byte a = 100; short b = 112; int c = 200;在转型的时候,如果没有超出相应数据类型的 表示范围,可以自动转型,如果超过表示范围了,那就会报错,会报精度丢失的异常。以后会有更详细的类型转换知识。
浮点数:
1、浮点型用来表示常见的小数,有float和double。Float占用4个字节的内存空间,double占用8个字节的内存空间。
2、浮点数的表示形式一般有两种:
a) 十进制的表示方法,比如:3.14、314.0等
b) 科学计数法,如:314E2,314e2,314E-2等。在这种表示方法中,E2表示10的2次方。如:double f= 314e2;相当于314*10^2 = 31400.0
E-2表示的是10的-2次方。如:double f = 314e-2相当于:314*10(^-2)= 3.14
3、浮点数值默认类型是double 要表示float 要在小数数值后面加上一个F。
4、需要注意的一点是浮点数在使用过程中存在舍入误差,有些数据不能精确表示,如果需要无误差的精确数字进行计算,需要使用BigDecimal类,在工作中如果对数据精度要求很高的,那就要谨慎选择了。所以float f = 1.0F;和double D = 1.0/10;比较f == D的时候,结果是false,也就是说f和D是不相等的,原因就在于 浮点数存在舍入误差。
- java菜鸟的回炉之旅之四----整型数据类型和浮点数数据类型
- java菜鸟的回炉之旅之三---java的标识符和基本数据类型
- java菜鸟的回炉之旅之十一----方法
- java菜鸟的回炉之旅之八---运算符二和控制语句一
- java菜鸟的回炉之旅之九---switch语句和while循环、do while循环
- java菜鸟的回炉之旅之十---for循环和break、continue
- java菜鸟的回炉之旅之一心态篇
- java菜鸟的回炉之旅十二---二进制
- 数据类型转换(浮点数与整型)
- 数据类型之整型
- 数据类型之整型
- C语言学习九数据类型的学习之浮点数
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- java菜鸟回炉之旅之二----认识java
- 数据类型之浮点型
- C语言之整型数据类型
- PHP基础数据类型之整型
- 6. ZigZag Conversion
- 蟠桃记
- enote笔记语言(4)(ver0.2)——“5w1h2k”分析法
- springMVC + ajaxfileupload异步上传图片预览,裁剪并保存图片
- 自定义图片加载框架
- java菜鸟的回炉之旅之四----整型数据类型和浮点数数据类型
- 数学黑洞
- 机器学习---k-近邻算法
- C++与JAVA的创建对象
- Three.js进阶篇之7
- 【那些年我们一起看过的论文】之《Fully Convolutional Networks for Semantic Segmentation》
- 们--加强菲波那切数列
- loadrunner中的web_url和web_submit_data的使用
- C#: 双检锁 (Double Checked Locking)