一、数据类型概念
1)数据类型就是一个修饰符,用于修饰变量,确定变量的类型,以便程序对应规则处理
2) JAVA有8大基本数据类型,依次为byte、short、int、Long、float、double、boolean、char
3) 按照数据类型特性又可以分为4个整数型、2个浮点型、1个布尔型、1个字符型
二、4个整数型
类型 | 占用内存 | 取值范围 | 使用程度 |
byte | 1字节(8位二进制) | -2^7~2^7-1 | 少用 |
short | 2字节(16位二进制) | -2^15~2^15-1 | 不用 |
int | 4字节(32位二进制) | -2^31~2^31-1 | 常用 |
Long | 8字节(64位二进制) | -2^63~2^63-1 | 少用 |
注意点:
1)定义变量的类型时依据其取值来定义,当超出范围时,编译会报错
2)变量类型转换时,JAVA遵循转换原则,即小范围类型转换大范围时自动(隐式)转换,大范围转换小范围时,必须显示(强制转换),否则会编译报错
3)类型强制转换会出现溢出问题即大范围值强转小范围时,超出了其范围,则会产生溢出效果
3.1)未超出范围时,不溢出,得到原结果
3.2)超出范围时,溢出,得到溢出后的结果
4)因此在定义变量类型时,尽量考虑好其值,少使用强制转换,避免溢出
5)Long类型定义时必须在值后加L。否则编译不通过(JAVA默认整数是int,且因为两者在大数值时比较接近,所以用L区分)
三、2个浮点型
类型 | 占用内存 | 有效位数 |
float | 4字节 | 6-7位 |
double | 8字节 | 15位 |
注意点:
1)float称为单精度类型,有效位数只有7位,因此很少使用,JAVA默认浮点型都是双精度即double
2)floatl类型定义时必须要在值后面加f,所有浮点数后面不加f都默认为double
3) 两者精度效果如下,因此在JAVA中常用为double(避免精度丢失的情况)
4)类型转换原则与整数型转换一致,大范围到小范围必须强制转换,小范围到大范围不用
package textCode;
public class Test
{
public static void main(String[] args)
{
double x=3.151678197812;
float y=3.151678197812f;
System.out.println(x);
System.out.println(y);
}
}
四、boolean型
boolean 型被称为布尔型,其值只有true或者false两种,因此常用于进行判断,且该类型不能转换成任何类型
五、char类型
char类型被称为字符型,其内存占用2个字节,且其定义方式只能是以下三种
char a='A' --定义单个字符
char b='中'--定义单个汉字
char c=120--定义值(会按照编码表返回对应支付)
不建议使用--因为其涉及到了编码格式等
六、浮动型和整数型之间转换规则
1)浮动型范围要比整数型的大(等同于整数后面加.0,因此浮动范围比整数大),因此整数型转浮动型不需强装,浮动型转整数型时需要强转
2)在不同类型的数做操作时,优先原则为double,float, long, int --也就是说两数若有double,则会都转成double,然后结果也是double