Java数据类型的简单归纳打理,顺带补上 常量与变量
1. 编程元素---常量与变量
1.1:常量
顾名思义,常量就是固定不变的量(不变的是其直接对象地址),即:定义完成就无法被改变。
声明常量的语法如下:
final <数据类型> <常量名>[=赋值];
进一步说明,常量的名称就采用全大写字母,以便区分于其他变量。其中定义的关键字final,不仅定义于变量,还用于定义类的成员方法,这就意味着被final定义的方法将不会再被改变。
1.2: 变量
变量是利用声明的方式,将内存中的某个块保留下来供该程序使用。
不管变量的值如何更改,所指向的,使用的,都是同一内存空间。
变量的作用范围:作用范围,也就是意味着在范围内,该变量名才会有意义、有作用。
那么,不同范围内的变量名是可以存在重名的,程序的运行时访问原则是就近原则,向上查找该变量名。
在一个类中,变量根据范围,有两种类型:
- 成员变量
类主体中定义的变量为成员变量。其作用范围是在整个类都能访问到。 - 局部变量
在某个方法,某个代码块,某个循环里所定义的变量,其只在这些局部的范围内有意义。
2. Java的数据类型
在Java中规定了8种基本数据类型,也存在引用类型的数据类型。如下图示:
图1-Java数据类型图
2.1:8种基本数据类型
数据类型 | 说明 | 位 | 可表示的数据范围 | 默认初值 |
---|---|---|---|---|
long | 长整数 | 64 | 能保存宇宙中最大的整数(正负) | 0L |
int | 整数 | 32 | -2147483648 ~ 2147483647 | 0 |
short | 短整数 | 16 | -32768 ~ 32767 | (short)0 |
byte | 位 | 8 | -128 ~ 127 | (byte)0 |
char | 字符 | 2 | 0~255 | u000(空) |
float | 单精度 | 32 | 可有6、7个小数位的精确度 | 0.0f |
double | 双精度 | 64 | 可有15个小数位的精确度 | 0.0d |
2.1.1: byte类型
1个字节有8位。
byte类型数据占据1个字节的内存空间。
2.1.2. short类型
赋值整数前以"(short)"表示该整数类型是short类型,否则是int型。
short类型数据占据2个字节的内存空间。
2.1.3: int类型
Java中默认的整数数据类型就是int型。
数据溢出时,溢出的数值将与该类型的最小数值相加后再赋值。也就是说,MAX_VALUE+n后的值是MIN_VALUE+[n-1]。
int类型数据占据4个字节的内存空间。
2.1.4: long类型
long类型数据占据8个字节的内存空间。
2.1.5: char类型
char类型数据占据2个字节的内存空间。
2.1.6: float类型
float类型数据占据4个字节的内存空间。
2.1.7: double类型
double类型数据占据8个字节的内存空间。
2.1.8: boolean类型
boolean类型数据只有true、false两个值,默认初值为false。
明显,布尔值是确定判断的真假。当然,真假的表示不仅仅是true与false,还能用数字,也就是说:非正数表false,正数表true。
2.2:引用数据类型
引用,就是一个指向了类的实例化对象的变量,那么该变量就属于引用数据类型。
3. 数据类型的转换
数据类型的有着严格的限制,实现类型转换须经过严格的步骤和规定。
转换方式有着两种。
3.1. 自动类型转换
自动转换即是向上类型转换。
自动转换的两个前提条件:
- 转换前的数据类型与转换后的类型兼容;
- 转换后的数据类型的表示范围比转换前的类型大(向上)。
3.2. 强制类型转换
强制转换须以“(转换后的类型)oldData”格式进行。如果强制向下转换,转换后的数据可能相比转换前,会丢失精度。