Java数据类型及其说明
java基本数据类型:
java数据类型分为基本数据类型和引用数据类型,基本数据类型就是4类8种,分为数值类型(整数型[byte,short,int,long]),字符型(char),布尔型(boolean)。引用数据类型(类,接口,数组)。
整数类型:
类型 | 字节 | 占用存储空间表数范围 |
byte | 1个字节 | -128到127 |
short | 2个字节 | -2^15到(2^15)-1 |
int | 4个字节 | -2^31到(2^31)-1 |
long | 8个字节 | -2^63到(2^63)-1 |
浮点型:
float | 4个字节 |
double | 8个字节 |
字符型:
char | 1个字节 |
<---------------------------------------------------------------------->
基本数据类型转换:
1、boolean类型与其他数据类型不可以相互转化。
2、整数型、字符型、浮点型的数据在混合运算时相互转换,遵循以下规则:
(1)、容量小的数据类型自动转换为容量大的数据类型,数据类型按照容量大小排序为: byte、short、char->int->long->float->double (bye,short,char之间不会相互转化,他们三者在计算时首先转换为int类型。) |
(2)、容量大的数据类型转换为容量小的数据类型时,要加上强制类型转换符,但可能会造成精度降低或者溢出,使用时要格外注意。 |
(3)、有多种类型的数据混合运算时,系统首先将所有的数据类型转换为容量最大的那一种类型,然后再进行运算 |
注意:实数类型常量默认为double类型(3.14),若要设置为float类型,则要在常量后面加f(如3.14f);
整数类型常量默认为int类型(如314),若要设置为long类型,则要在常量后面加L(如314L);
<----------------------------------------------------------------------------------->
疑惑?:看着这里你可能会有疑惑,long占据的存储空间为8个字节,float占据的存储空间为4个,看起来long表示的数比float大,为什么在进行混合运算时,long类型要转换为float类型,其实,float可表示的数远比long大。下面来进行解释一下:(这涉及计算机组成原理的知识)
(一)定点数的表示方法
通常将数据表示成纯小数或纯整数。
(二)浮点数的表示方法:
在计算机中,一个任意进制数N可以写成:
N=R^E.M
其中M称为浮点数的尾数,是一个纯小数;E为浮点数的阶码(通俗的说就是科学计数法表示时的e的后面那个整数),是一个整数;R是比例因子(几进制,通常为2、8、16),不需要在浮点数中表示出来。
一个浮点数在计算机中应该由阶码(Exponent),尾数(mantissa)和符号位组成,按照IEEE标准,常用的浮点数的格式表示为:如下
32位的float类型实数,符号位为1位,阶码位8位,尾数为23位,如下:
64位的double类型实数,符号位为1位,阶码位11位,尾数为52位,如下:
浮点)数值 = 尾数 × 底数 ^ 指数,(附加正负号)
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。