Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:包括int,short,byte,long ,初始值为0
2、浮点型:float,double ,初始值为0.0
其中,float是单精度类型,精度是6位有效数字,取值范围是10的-38次方到10的38次方
double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方
注:申明float类型时,数值后面需加上f,如:float b = 1.3f、或者float b = 1.3F
f/F的作用是:分配32位空间大小,如果是 float a = (float) 1.3 强制转换,则分配64位,只用到32位,造成空间浪费。
3、字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的。4、布尔:boolean ,初始值为false
以下是基本类型值的大小及范围:
基本型别 | 大小 | 最小值 | 最大值 |
boolean | ----- | ----- | ------ |
char | 16-bit | Unicode 0 | Unicode 2^16-1 |
byte | 8-bit | -128 (-2^7) | +127(2^7-1) |
short | 16-bit | -2^15 | +2^15-1 |
int | 32-bit | -2^31 | +2^31-1 |
long | 64-bit | -2^63 | +2^63-1 |
float | 32-bit | IEEE754 | IEEE754 |
double | 64-bit | IEEE754 | IEEE754 |
java采用unicode,2个字节来表示一个字符
5.基本类型间的转换
基本规则:表数范围小的可以直接赋给表数范围大的类型
注:例外:byte、short类型不能自动转换为 char,而char可以自动转为int型
public class JavaType {
public static void main(String[] args) {
byte a = 1;
short b = 1;
char c = 1;
int d = 1;
long e = 1;
float j = 1.0f;
double k = 1.0;
//------基本类型转换: 表数范围小的可以直接赋给表数范围大的类型------
//其中,byte、short类型不能自动转换为 char
// c = (char) b; c = (char) a;
//char类型可以自动转换为 int
d = c;
//------float类型------
//float a = (float) 1.3; //提示转换为double类型或者强制转换float a = (float) 1.3;
float f = 1.3f; //正确
System.out.println(f); //1.3
}
}
Java自动类型转换图: