数据类型结构图
-
基本数据类型
布尔值 (true / false)
-
数值类型
-
定点类型
字符 char
字节 byte
短整数 short
整数 int
长整数 long
-
浮点类型
单精度浮点数
双精度浮点数
-
-
引用数据类型
类或枚举或接口
数组
基本数据类型
由上图可知,java基本数据类型只有8种。即布尔值(boolean),字符(char),字节(byte),短整数(short),整数(int),长整数(long),单精度浮点(float)、双精度浮点(double)。
类型 | 占用位数 | 数值范围 | 初始值 | 标准 |
---|---|---|---|---|
boolean | 8 | 只有true和false | false | |
char | 16 | 从'u0000'到'uFFFF',即0到65535 | 'u0000' | ISO Unicode字符集 |
byte | 8 | 从-128到+127,即-2^7 - 2^7-1 | (byte)0 | |
short | 16 | -2^16 - 2^16-1 | (short)0 | |
int | 32 | -2^31 - 2^31-1 | 0 | |
long | 64 | -2^63 - 2^63-1 | 0L | |
float | 32 | 范围不知道怎么算 | 0.0f | IEEE 754标准 |
double | 64 | 范围不知道怎么算 | 0.0d | IEEE 754标准 |
java中,在书写一个数组时,可以用后缀标示数据类型。例如
0L 长整数类型的0
0.0f 代表单精度浮点
0.0d 代表双精度浮点
直接量
直接量通俗的讲法就是这里显式地表示基本数据类型数据、字符串值和空引用值的表达式,该表达式中没有运算符号。
直接量其实是与之前的基本数据类型是一一相关的。
布尔值
只有true
和false
。
字符(char)直接量
java采用的是ISO规定的Unicode字符集。每个字符占2个字节,即16位。字符的写法由4种:
-
采用整数直接量的写法。该整数的取值范围为0~65535
System.out.print((char)88); //输出 X
用单引号括起来的单个字符。例如
'h'
,'奥'
等。用单引号括起来的Unicode字符。例如'u0061'等。用'u'引导,后面接着4位16进制
用单引号括起来的转义字符。例如't'表示制表符。
字节、短整数和整数的直接量
三者的表示方式类似。仅仅是整数的范围不一致。其可以有下列三种进制。
十进制。由+、-、0~9组成的整数形式。需要注意,除了整数0之外,其余整数的第一个数字不能是0,否者会被java理解成8进制
八进制。由数字0引导,用+、-、0~9组成。
十六进制。由
0x
或者0X
引导。由+、-、数字0~9和字符a~f, A~F组成。
长整数直接量
与整数类似,但是需要在整数后直接加上L
或者l
。
单精度浮点数和双精度浮点数
通常由+、-、十进制消暑、指数再加上表示精度的后缀表示。
小数点前或后可以有一侧没有数字。
例如.02f
, 2.f
字符串直接量
例如:"Hello word"
null直接量
标示空的引用值,不指向任何对象。
变量
java的变量一般有四个基本属性:变量名、数据类型、储存单元、变量值。
变量名和数据类型没啥好说的。
每一个变量都拥有一个存储单元。存储单元的大小由数据类型决定。在变量的纯粗单元中存放的事该变量的变量值。
如果变量值的数据类型是基本数据类型,那么该变量的储存的是具体的数值。
如果变量值的数据类型是引用数据类型,则在变量的存储单元中存放的事引用值。引用值指向的是一个具体的变量。
java在使用一个变量之前,必须线定义该变量。
定义后需要对变量进行初始化。
初始化之前,该变量的存储单元中存放的内容是该变量的初始值。引用类型的变量初始值是null。
数据类型转换
各个数据类型在数据类型转换中具有强弱关系。
byte < short -|
|- < int < long < float < double
char -|
这里的强弱其实是指哪个数据类型覆盖的范围更广。
boolean 不能与其它数据类型进行互相转换。
弱类型可以通过直接赋值的方式,隐式地转换为强类型。
例如 double x = 1;
强类型的数据可以转化成弱类型的数据。这叫强制转换。该转换过程可能会伴随着信息的丢失。
int i = (int)2.03
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。