java中数据类型包括基本类型和引用类型,基本类型包括byte、short、int、long、float、double、char、boolean,其中取值范围从小到大排序为boolean<byte<short<char<int<long<float<double。
【Android】学习札记第1章之基本数据类型
一、基本数据类型的种类
-
(1)byte
byte是用8个0和1组成的1字节数据大小的单位,占用内存大小为1字节,注并不是占用硬盘大小1字节,取值范围是10000000~01111111(-128~127)。如00000000=0,11111111=-1。
换算:
1byte=8bit,1Kbyte=1024byte,1Mbyte=1024Kbyte,1Gbyte=1024Mbyte,1Tbyte=1024Gbyte,1Gbyte=1024Tbyte,
1Gbyte=1024Tbyte
(2)short
short表示短整型数字,占用内存大小是2字节,取值范围是-2^15~2^15-1。
(3)int
int表示整型数字,占用内存大小是4字节,取值范围是-2^31~2^31-1,int型的数字比byte、short、char的范围都大。
(4)long
long表示长整型数字,占用内存大小是8字节,取值范围是-2^63~2^63-1。
-
(1)float
float表示单精度浮点型小数,占用内存大小是4字节,取值范围比int大的多。
(2)double
double符合美国工业电器协会浮点数表示规范,表示双精度浮点型小数,占用内存大小是8字节,取值范围比float更大。
-
(1)char
char表示字符或字符型数字编码,可以进行数字运算,占用内存大小是2字节,取值范围是[00000000 00000000,11111111 11111111]([0,65535],[0,2^16-1])
(2)boolean
boolean是通过true和false表示真假用在判断语句中的数据类型,占用内存大小是1字节。
三、基本数据类型的运算规则
-
如:3/2==1,3D/2==1.5(因double比int范围大所以结果是double 的)
-
如:byte a=2;byte b=3;int c=a+b;
-
如:int a=Integer.MAX_VALUE;a=a+1;//超出int最大值,得到a为最小值,不报错但运算错误。
-
如:2-1.9==0.10000000000000009。所以浮点数运算并不精确,但有其他办法获得精确的结果
-
Infinity无穷大:通过3.14/0或Double.MAX_VALUE*2得到;
NaN非数字:通过负数开平方得到。
四、基本数据类型转换
-
范围小的类型转换成范围大的类型。
byte a=127;
int b=a;
原理:在内存中01111111在前边加3字节的0或1就可转换完毕
-
范围大的类型转换成范围小的类型。
int a=255;
byte b=(byte)a;
原理:把前边3字节都强制去掉,最后结果是-1,转换完毕。