Java数据类型,分为基本数据类型和引用类型。基本数据类型,又细分为8种基本数据类型,分别是byte、short、int、long、float、double、boolean和char。
数据类型的概念
- 变量就是申请内存空间来存储值。也就是说,创建变量的时候,需要申请内存空间。
- 内存管理系统根据变量的类型来分配空间,并且分配的空间,只能存储该数据类型。
- Java的两大数据类型:内置数据类型、引用数据类型。
基本数据类型
基本数据类型有八种,其中包括:四种整数型(byte,short,int,long),两种浮点型(float,double),一种字符类型(char),一种布尔类型(boolean)。
byte
- byte数据类型是8位,有符号的,以二进制补码表示的整数。
- 最大值2^7-1(127),最小值-2^7(-128),默认值是0。
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一。
- 例子:byte a = 100,byte b = -50。
- 二进制里,最高位(第一位)表示符号。0表示正,1表示负。
short
- short 是16位,有符号的,以二进制补码表示的整数。
- 最大值是2^15-1(32767),最小值是-2^15(-32768),默认值是0.
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一。
- 例子:short s = 1000,short r = -20000。
int
- int 是32位、有符号的以二进制补码表示的整数。最左侧的一位是符号位。0代表正数,1代表负数。
- 最大值是2^31-1(2,147,483,647),最小值是-2^31(-2,147,483,648), 默认值是0。
- 一般地整型变量默认为 int 类型;
- 例子:int a = 100000, int b = -200000。
long
- long 是 64 位、有符号的以二进制补码表示的整数。
- 最大值2^63-1, 最小值2^63,默认值是0L。最大长度为19位。
- 这种类型主要使用在需要比较大整数的系统上。
- 例子: long a = 100000L,Long b = -200000L。”L”理论上不分大小写,但是若写成”l”容易与数字”1”混淆,不容易分辩。所以最好大写。
float
- float 是单精度、32位、符合IEEE 754标准的浮点数。
- float 在储存大型浮点数组的时候可节省内存空间。
- 默认值是 0.0f。
- 浮点数不能用来表示精确的值,如货币。
- 例子:float f1 = 234.5f。
- 进行带有小数的操作,会存在精度丢失的问题,十进制转化二进制,存在转换不完的情况。
- 整数部分:除2取余,结果为0即可,余数部分组合成二进制数。
- 小数部分:乘2取整,小数部分为0即可。整数部分组合成二进制数。
double
- double 是双精度的,64位,符合IEEE 754标准的浮点数。
- 浮点数的默认类型为double类型。
- double也不能用来标示精确的值,如货币。
- 默认值是0.0d。
- 例子:double d1 = 123.4。
- 进行带有小数的操作,会存在精度丢失的问题,十进制转化二进制,存在转换不完的情况。
- 整数部分:除2取余,结果为0即可,余数部分组合成二进制数。
- 小数部分:乘2取整,小数部分为0即可。整数部分组合成二进制数。
boolean
- boolean 表示一位的信息。
- 只有两个取值:true 和 false。
- 这种类型只作为一种标志来记录 true/false 情况。
- 默认值是 false。
- 例子:boolean one = true。
char
- char 是一个单一的 16 位 Unicode 字符。
- 最小值是 \u0000(即为0)。
- 最大值是 \uffff(即为65,535)。
- char 数据类型可以储存任何字符。
- 例子:char letter = ‘A’。
引用类型
- 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、User 等。变量一旦声明后,类型就不能被改变了。
- 对象、数组都是引用类型变量。
- 所有引用变量的默认值都是NULL。
- 一个引用变量可以用来引用任何与之兼容的类型。