简介
数据类型定义了变量可以使用的值,比如:一个int
数据类型的变量,那它就只能分配(或赋值)整数值。
Java 是一种强类型语言,编译时就需要知道变量的数据类型,也就意味着使用变量之前必须先指定变量的数据类型(声明变量),声明变量上一篇变量已经说过了,不在赘述。
Java 中有两类数据类型
- 基本数据类型
- 引用数据类型
本篇主要介绍基本数据类型与字面量,引用类型后面再做介绍,数组与字符串属于引用类型。
基本数据类型
Java 中相同的基本数据类型在不同操作系统中占用的空间是一样的,这也为 Java 的可移植性提供了保证。
基本数据类型包括四类-8种:
- 整数型(不带小数的数字):
byte
,short
,int
,long
- 浮点型(带小数的数字):
float
,double
- 字符型(单个字符):
char
- 布尔型(真和假):
boolean
基本数据类型一览表
数据类型 | 占用bit位 | 取值范围 | 缺省默认值 |
---|---|---|---|
byte(字节型) | 1 | [-128~127] | 0 |
short(短整型) | 2 | [-32768~32767] | 0 |
int(整型) | 4 | [-2147483648~2147483647] | 0 |
long(长整型) | 8 | 0L | |
float(单精度) | 4 | 0.0f | |
double(双精度) | 8 | 0.0 | |
boolean(布尔型) | 1 | true、false | false |
char(字符型) | 2 | [0~65535] | ‘\u0000’ |
引用数据类型
除了基本数据类型之外的都是引用类型。如:数组、字符串等。
字面量(literal)
字面量是通过源代码直接给出的值。
字面量就是数据,是由字母、数字等构成的字符串或者数值。
如:代码int num = 0;
为变量 num
所分配的初始值 0
就是一个字面量。
可指定字面量的类型
并不是所有的数据类型都可以指定字面量,能指定字面量的有以下三种类型:
- 基本类型
- 字符串类型
- null 类型
int 类型的字面量
在程序中直接给出的整型数值就是int
类型的字面量,可分为二进制、十进制、八进制和十六进制 4 种。
其中二进制需要以 0B 或 0b 开头,八进制需要以 0 开头,十六进制需要以 0x 或 0X 开头。例如 123、012(对应十进制的 10)、0x12(对应十进制的 18)等。
long 类型的字面量
在整型数值后添加 l 或 L 后就变成了 long
类型的字面量。例如 3L、0x12L(对应十进制的 18L)。
float 类型的字面量
在一个浮点数后添加 f 或 F 就变成了 float
类型的字面量,这个浮点数可以是标准小数形式,也可以是科学计数法形式。例如 5.34F、3.14E5f。
double 类型的字面量
直接给出一个标准小数形式或者科学计数法形式的浮点数就是 double
类型的字面量。例如 5.34、3.14E5。
boolean 类型的字面量
这个类型的直接量只有 true
和 false
。
char 类型的字面量
char 类型的字面量有三种形式,分别是用单引号括起来的字符、转义字符和 Unicode 值表示的字符。例如'a'
,'\n'
和'\u0061'
。
String 类型的字面量
一个用双引号括起来的字符序列就是 String 类型的字面量。在 Java 中,字符串实际上是对象类型。
null 类型的字面量
这个类型的字面量只有一个值,即 null
。这个字面量可以赋给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即还未指向任何有效对象。