# Java数据类型

计算机内存的最小存储单元是字节byte,一个字节就是一个8位二进制数,即8bit。它的二进制表示范围从00000000~11111111,换算成十进制是0~255

# 基本数据类型

基本数据类型可以在cpu进行直接运算,java的基本数据类型:

# 整数类型:

整数类型 位数 值大小 说明
byte 8位 1字节 -2^7 ~ -2^7-1 byte 类型用在大型数组中节约空间
short 16位 2字节 -2^15 ~ -2^15-1 -
int 32位 4字节 -2^31 ~ -2^31-1 一般地整型变量默认为 int 类型
long 64 8字节 -2^63 ~ 2^63-1 这种类型主要使用在需要比较大整数的系统上

# 浮点类型:

浮点类型 位数 说明
float 32位 4字节 数据类型是单精度,不能用来表示精确的值
double 64位 8字节 数据类型是双精度,不能表示精确的值,浮点数的默认类型为double类型

# 字符类型:

字符类型 位数 说明
char 16位 2字节 char 数据类型可以储存任何字符

# 布尔类型:

字符串类型: 位数 说明
boolean 1字节 truefalse

# 数据类型的转换

# 自动类型转换

  • 规则:
  1. 小——>大 (byte->short->int->long->float->double)
  2. char类型识别为int,可以转成int,不可自动转成byteshort
  3. 不能对boolean类型进行类型转换。
  4. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
int a =  1;
short b = 2;
byte c = 3;
long d = 4;
char  str = 'a';

a = b; // 可以,short转换为int,自动转换
b = a; // 报错,不能自动转换,需要强制转换

d = a; // 可以,int转换为long,自动转换

a = str; // 可以,char转换为int,自动转换

c = str; // 报错,不能自动转换

# 强制类型转换

  • 规则:大——>小

  • 语法:类型 变量名 = (类型)值;

int a =  1;
short b = 2;
byte c = 3;
long d = 4;
char  str = 'a';
boolean bo = true;


b = (short)a;  // 将 int类型的a 强制转换为short类型

d = (long)str; // 将 char类型的str 强制转换为long类型

bo = (boolean)short; // 报错,不能对`boolean`类型进行类型转换

提示

  • boolean 类型不能转换成任何其它数据类型
  • java中整数类型默认的int类型;小数类型默认的double
  • int无法转换为boolean
  • 转换过程中可能导致溢出或损失精度,例如:int i =129; byte b = (byte)i
  • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如(int)20.8 == 20