基本数据类型
1、位和字节
1. 位bit:计算机内部数据储存的最小单位
2. 字节byte:计算机中数据处理的基本单位
3. 字word:计算机进行数据处理时,一次存取、加工和传送的数据长度称为字
处理器 | 字节 | 字 | 字长 |
---|---|---|---|
16位 | 2 | 由2个字节组成 | 16 |
32位 | 4 | 由4个字节组成 | 32 |
64位 | 16 | 由16个字节组成 | 64 |
4. 1byte = 8bit
2、进制和转换
1. 二进制:0,1;满2进1;0B或0b开头
2. 十进制:0~9;满10进1
3. 八进制:0~7;满8进1;0开头
4. 十六进制:0-9和A-E(不区分大小写);满16进1;0X或0x开头
5. 进制转换:八进制 <–> 二进制 <–> 十六进制
3、原码 补码 反码
计算机底层都是使用补码来保存数据的
计算机中二进制数的最高位表示符号位
- 正数的原码、反码、补码都是一样的
- 负数的原码是取绝对值,表示为二进制,符号位为1
- 反码:除符号位对原码取反
- 补码:对反码加1
二进制 | 表示数 | 说明 |
---|---|---|
0000 0000 | 0 | 最高位表示符号 |
0111 1111 | 127 | 最高位表示符号 |
1000 0001 | -1 | 最高位表示符号 |
1111 1111 | -127 | 最高位表示符号 |
1000 0000 | -128 | 负数中用-0去表示-128 |
- 计算机中8位二进制数的范围:[1000 0000, 0111 1111]
- 由于计算机保存数据都是用反码,1000 0000是补码形式,减1得反码为0111 1111,取反得原码1000 0000,换成十进制就是128,加上符号,即-128
4、标识符
java给变量、方法、类、接口、包等要素命名时使用的字符
凡是自己起名字的地方都叫标识符
1. 命名规则
- 由字母、数字、下划线或$组成
- 不能以数字开头
- 不能与关键字、保留字冲突
- 严格区分大小写
2. 命名规范
- 包名:xxxyyyzzz
- 类名、接口名:XxxYyyZzz(大驼峰)
- 变量名、方法名:xxxYyyZzz(小驼峰)
- 常量名:XXX或XXX_YYY_ZZZ
3. 见名知意
5、变量
1. 概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元
2. 声明与赋值
- 数据类型 变量名 = 值;
3. 作用域
- 定义在一对{}内
- 只有在其作用域内才有效
- 同一作用域内不可以声明两个同名变量
4. 变量在类中声明的位置
6、基本数据类型
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | 能表示 2 8 2^8 28个数: − 2 7 -2^{7} −27 ~ 2 7 − 1 2^{7}-1 27−1 => 128~127 |
short | 2字节 | 2 16 2^{16} 216:-32768~32767 |
int | 4字节 | 2 32 2^{32} 232: − 2 31 -2^{31} −231 ~ 2 31 − 1 2^{31}-1 231−1 |
long | 8字节 | 2 64 2^{64} 264: − 2 64 -2^{64} −264 ~ 2 64 − 1 2^{64}-1 264−1 |
float | 4字节 | -3.403E38 ~ 3.403E38 |
double | 8字节 | -1.798E308 ~ 1.798E308 |
char | 2字节 | 表示单个字符 |
boolean | 4字节(会被编译为int 类型) | false/true |
- 定义
char
可以是一个字符,也可以是数字,但输出是数字对应的字符 - 布尔型的
false
和true
不代表0和1,就是输出true
和false
,不会输出1或0 float
和int
一样是4个字节,为什么范围比long
的范围还大,因为它是用一部分表示具体的单或双精度数值,后面的部分来表示10的多少次幂
6.1 自动类型提升
- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
- byte 、char 、short --> int --> long --> float --> double
- 特别的:当byte、char、short三种类型的变量做运算时,结果为int型
- 此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
6.2 强制类型转换
- 整型常量默认是
int
类型- 浮点型常量默认是
double
类型
- 自动类型提升的逆运算,使用强转符
- 会有精度损失,如float小数转为int整数(只取整数部分)
- 定义long型时,末尾没加L,但范围没有超过int的范围时,由于自动类型提升,不会报错
int
类型
- 浮点型常量默认是
double
类型
- 自动类型提升的逆运算,使用强转符
- 会有精度损失,如float小数转为int整数(只取整数部分)
- 定义long型时,末尾没加L,但范围没有超过int的范围时,由于自动类型提升,不会报错