基本数据类型
-
整型:
byte、short、int、long
java
的整型常量默认为int
型,在java
程序中变量通常声明为int
型,除非不足以表示较大的数才用long
,而在声明long
型常量必须在后面加上l
或L
。类型 占用储存空间 表数范围 byte
1字节=8 bit
-128 ~ 127 short
2字节 -215 ~ 215 - 1 int
4字节 -231 ~ 231 -1 (约21亿) long
8字节 -263 ~ 263 - 1 -
浮点型:
float、double
浮点型表示小数点的数值,
java
浮点型常量默认类型为double
。float
表示数值的范围比long
还大,在定义float
变量时,变量要以f
或F
结尾(尾数可以精确到7位数字。很多情况下,精度很难满足需求)double
精度是float
的两倍。(通常采用此类型定义)
类型 占用储存空间 表数范围 单精度 float
4字节 -3.403E38 ~ 3.403E38 双精度 double
8字节 -1.798E308 ~ 1.798E308 -
字符型:
char
在声明
char
型变量时,通常使用一对' '
,内部只能写一个字符。实列:
char = '世'
√char = '世界'
×
类型 占用储存空间 表数范围 char
1字符 = 2字节 ' 字
' -
布尔型:
boolean
布尔型只有两个值:
true
、false
,一般用在判断、循环结构中使用。
引用数据类型
-
特殊:字符串(
String
属于引用数据类型)String
可以和所用数据类型进行计算,结果都为String
类型。 -
类(
class
) -
接口(
interface
) -
数组(
array
)
基本数据类型之间的运算规则
自动类型提升
(byte
、char
、 short
) → int
→ long
→ float
→ double
特别:当
byte
、char
、short
三种类型的变量做运算时,结果为int
类型。
- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的类型
说明: 此时的容量大小指的是表示数的范围的大和小。
比如:
float
容量要大于long
的容量。
强制类型转换
强制类型转换就相当与自动类型提升运算的逆运算
-
强制数据转换需要使用强转符:()
-
注意:强制类型转换,可能导致精度损失
public class VariableTest2 { public static void main(String[] args){ /*精度损失举例1*/ double d1 = 12.3; int i1 = (int)d1; System.out.println(i1); // 12 /*没有损失精度*/ long d2 = 123L; short i2 = (short)d2; System.out.println(i2); // 123 /*精度损失举例2*/ int d3 = 128; byte i3 = (byte)d3; System.out.println(i3); // -128 } }