前言

java数据类型可分为两大类基本数据类型引用类型),而基本数据类型可细分为4类8种。每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(例如byte占1个字节)。

基本数据类型

基本数据类型4类

整数型

byte [位] short[短整数] int[整数] long[长整数]

浮点型

float [单精度] double[双精度]

字符型

char[字符]

布尔型

boolean[布尔值]

整数型和浮点型都属于数值型,因此也可以说是3类。

基本数据类型8种详解

表格

基本类型 占用空间byte 位bit 表示范围 包装类型
byte 1 8 -2^7 - 2^7-1 Byte
short 2 16 -2^15 - 2^15-1 Short
int 4 32 -2^31 - 2^31-1 Integer
long 8 64 -2^63 - 2^63-1 Long
float 4 32 -2^31 - 2^31-1 Float
double 8 64 -2^63 - 2^63-1 Double
char 2 16 0 - 2^16-1 Character
boolean 1 8 true,false Boolean

小知识

  • 家用宽带说的速度,如300Mb/s,是用的bit为单位,所以你经常发现你的下载速度比宽带标识的差很多,是因为下载速度是以Byte为单位,差了8倍,所以换算下来 300Mb/s的网速下载速度理论能达到37.5MB/s
  • 二进制数系统中,每个0或1就是一个位(bit),位是数据存储的最小单位。其中8bit就称为一个字节(Byte)
  • 基本数据类型范围很好理解,如byte,占8个位(0000 0000),第一位为符号位(0是正数1是负数),除去符号位还有7个位用来存储数据,每个位是0或1,组合变化算下来就是2^6+2^5+2^4+2^3+2^2+2^1+2^0=127,所以理论上范围是-127到127,但是有个特殊情况,0带符号没有意义,所以1000 0000(补码)用来表示-128,范围就变成了-128-127,所以范围是-2^7 到 2^7-1,即1000 0000-0111 1111
  • 一个8位的补码数,它表示数的范围是-128到+127,原码表示数的范围是-127到+127,反码表示数的范围是-127~+127,就是因为最高位是符号位,实际数位只有7 位。

引用数据类型

  • 类 class
  • 数组 array
  • 接口 interface
  • 枚举 enum
  • 注解 annotation
  • 记录 record(JAVA17正式发布)