1-基本数据类型

168 阅读3分钟

基本数据类型

1-基本数据类型.png

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. 进制转换:八进制 <--> 二进制 <--> 十六进制

进制转换1.jpg

进制转换2.jpg

3、原码 补码 反码

计算机底层都是使用补码来保存数据的

计算机中二进制数的最高位表示符号位

  • 正数的原码、反码、补码都是一样的
  • 负数的原码是取绝对值,表示为二进制,符号位为1
  • 反码:除符号位对原码取反
  • 补码:对反码加1
二进制表示数说明
0000 00000最高位表示符号
0111 1111127最高位表示符号
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. 变量在类中声明的位置

变量.png

6、基本数据类型

类型占用存储空间表数范围
byte1字节能表示282^8个数:27-2^{7} ~ 2712^{7}-1 => 128~127
short2字节2162^{16}:-32768~32767
int4字节2322^{32}231-2^{31} ~ 23112^{31}-1
long8字节2642^{64}264-2^{64} ~ 26412^{64}-1
float4字节-3.403E38 ~ 3.403E38
double8字节-1.798E308 ~ 1.798E308
char2字节表示单个字符
boolean4字节(会被编译为int类型)false/true
  • 定义char可以是一个字符,也可以是数字,但输出是数字对应的字符
  • 布尔型的falsetrue不代表0和1,就是输出truefalse,不会输出1或0
  • floatint一样是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的范围时,由于自动类型提升,不会报错