首先,在java中有四种8类数据类型。包括:
逻辑类型:boolean类型 eg:boolean a=ture, b=false; 其中ture和false为常量。
整数类型:byte 分配一个字节,8位。给出一个整数默认为int型,因此表示byte时需要这样表示:byte(12)、byte(-12).
int型分配4个字节,32位。给出一个整数默认位int型。
long型分配8个字节,64位,表示一个long型整数:12L 需要加上L后缀。
字符型:char型分配一个字节,8位。在java中采用Unicode对字符进行编码。(两个字节编码)
浮点类型:float单精度型,分配4个字节,表示一个float小数时要在后面加上后缀f或F。存储一个float数据时保留8位有效数字。
double浮点类型,分配8个字节,给出一个小数时默认为double型。存储一个double型数据时保留16位有效数字。称之为双精度型。
类型转换中:分为隐式转换与显示转换。
其中隐式转换eg: float a=100; 将精度低的转换成精度高的,可以直接转换。
在将精度高的转换成精度低的时候,就要考虑要在一定范围内转换成精度低的。eg: byte a =132;因为byte型最多表示到127.这时就需要对数据进行强制类型转换。但是在进行强制类型转换时会出现精度的损失。eg: byte a=(byte)128; 转换成byte型时会变为-127。在这里要重点说一下,
首先,在计算机中数据是以补码的形式存储的,所以128int型在计算机中存储为 0 10000000(前23位都为0省去),然后在强制类型转换的时候只截取8位之后为10000000,之后在转化位补码,在这里这个数目前表示负数,所以补码为:1 10000000 为-128