JAVA的数据类型
JAVA的数据类型主要分为以下两类:
(1)基本数据类型
| 基本数据类型 | 描述 |
|---|---|
| byte/short/int/long | 用于描述整数数据的,如:66 |
| float/double | 用于描述小数数据的,如 3.14 |
| boolean | 用于描述真假信息的,如: true 和 false |
| char | 用于描述字符数据的,如: ‘a’ |
(2)引用数据类型
数组、类、接口、枚举以及标注
单个字节表示的整数范围
在计算机中单个字节表示8位二进制,,描述的整数范围是:
对于非负数来说,描述的范围是: 0000 0000 ~ 0111 1111 => 0~127 =>0~2的7-1次方
推导过程:
0000 0000 => 0
0111 1111 => 1∗26+1∗25+1∗24+1∗23+1∗22+1∗21+1∗20
========> 64 + 32 + 16 + 8 + 4 + 2 +1
========>127
对于负数来说,描述的范围是: 1000 0000 ~ 1111 1111 => -128 ~ -1 => −27 ~ −20
1000 0000 => 按位取反: 0111 1111
=>再加1: 1000 0000
=>转换为十进制整数:128
=>添加负号:-128
1111 1111 =>按位取反: 0000 0000
=>再加1:0000 0000
=>转换为十进制整数: 1
=>添加负号: -1
综上所述:对于单个字节所能描述的十进制整数范围是: -128 ~ 127
常见进位制转换>>
整数类型
在JAVA语言中用于描述整数数据的关键字有: byte、short、int、long,推荐使用int类型
| 数据类型 | 在内存空间 | 表示的整数范围 | 表示的整数范围 |
|---|---|---|---|
| byte | 占1个字节 | −27 ~ 27−1 | -128 ~ 127 |
| short | 占2个字节 | −215 ~ 215−1 | -32768 ~ 32767 |
| int | 占4个字节 | −231 ~ 231−1 | 正负二十一亿之间 |
| long | 占8个字节 | −263 ~ 263−1 | 比int类型还大的数 |
注:
在程序中直接写出的整数数值叫做直接量/常量/字面值,默认情况下为int类型,如:120.
如希望描述超过int类型的直接量数据,则需要在直接量后面加上l或L,(避免与数字1混淆,推荐大写L)。
当long类型都不足以描述时,可以使用java.math.BigInteger类型加以描述。
浮点类型
在JAVA语言中用于描述小数数据的关键字有:float和double,推荐使用double类型。
float类型在内存中占4个字节,叫做单精度浮点型,通常小数点后取到7位。
double类型在内存中占8个字节,叫做双精度浮点型,通常小数点后取到14位。
注:
在程序中直接写入的小数数值叫做直接量,默认情况下为double类型,如:3.14
若希望描述的小数数据是float类型,则需要在直接量的后面加上f或者F。
由于float类型和double类型都无法实现精确运算,因此可以使用java.math.BigDecimal类型加以描述。
布尔类型
在Java语言中用于描述真假信息的关键字有:boolean类型,数值只有:true 和 false。
其中boolean类型所占内存空间的大小没有明确规定,按照分析来看一个二进制位足以表示,但通常情况下看做1个字节来对待。
字符类型char
在Java语言中用于描述单个字符信息的关键字有:char类型,通常使用”括起来,’a’,’1’。
其中char类型所占内存空间的大小为2个字节,通常描述字符之外还有描述汉字,如:’中’
实际开发中通常使用String类型描述多个字符组成的整体,叫做字符串,使用”“括起来
基本数据类型之间的转换
在JAVA语言中数据类型之间的转换形式有:自动类型转换 和 强制类型转换。
其中自动类型转换主要指从小范围向大范围的转换过程。
其中强制类型转换主要指从大范围向小范围转化的过程。
语法格式:
目标类型 变量名 = (目标类型)源类型的变量名;
例:
short s2 = 200;
byte b1 = (byte)s2;