Java学习之路(二)数据类型之基本数据类型
一、数据类型
Java数据类型分为两大类:基本数据类型与引用数据类型,基本数据类型又可分为数值型、字符型、布尔型;而引用数据类型又可分为类、接口、数组。详细分类如下图所示。
基本数据类型与引用数据类型的本质区别在于声明引用类型的变量所指向的不是一个具体的数值,而是指向数据对象的内存地址。
二、基本数据类型
(一) 分类
基本数据类型大致分为三类:
- 数值型:
- 整数类型(byte、short、int、long)
- 浮点类型(float、double)
- 字符型:char
- 布尔型:boolean
数据类型 | 说明 | 字节 | 位 | 取值范围 |
---|---|---|---|---|
byte | 字节型 | 1 | 8 | -27 ~ 27-1 |
short | 短整型 | 2 | 16 | -215 ~ 215-1 |
int | 整型 | 4 | 32 | -231 ~ 231-1 |
long | 长整型 | 8 | 64 | -263 ~ 263-1 |
float | 单精度浮点型 | 4 | 32 | 1.4E-45 ~ 3.4028235E38 |
double | 双精度浮点型 | 8 | 64 | 4.9E-324 ~ 1.7976941348623157E308 |
char | 字符型 | 2 | 16 | 0~65535 |
boolean | 布尔型 | 1 | 8 | true,false |
(二)字面值表示
- 整型,默认为int型,声明长整型应当在值后加l/L
- 十进制:包括0-9的数字
- 八进制:以0开头,包括0-7的数值
- 十六进制:以0x(0X)开头,包括0-9个数字,a-f(A-F)
- 浮点型,默认为double型
- double:默认或在值后加d/D
- float:在值后加f/F
- 字符型,使用单引号
- 布尔类型:true或false
(三)类型转换
-
类型转换分为:自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)
-
类型转换顺序
PS.实线代表自动类型转换,虚线代表强制类型转换,简单的判定方法就是看位数。
(四)在内存中的存储
基本数据类型声明的变量及引用类型声明的变量存储在栈空间,引用类型实例化后的数据(也就是new后的信息)存储在堆中。
三、变量与常量的声明
描述变量与常量共同的三个元素:类型、量名、量值
- 变量
- 声明:变量类型 变量名;
- 赋值:变量名 = 变量值(其它的变量名);
- 通常直接使用初始化语句:变量类型 变量名 = 变量值(变量名);
- 常量
- 声明:final 常量类型 常量名;
- 赋值:常量名 = 常量值;
- 通常直接使用初始化语句:final 常量类型 常量名 = 常量值;