1. Java是强类型编程语言,要求每一个变量、每一个表达式都必须有确定的数据类型。编译器会全程严格检查类型间的兼容性,不匹配的类型会直接判定为错误,必须提前修正。

2. Java语言的数据类型整体分为两大类:基本数据类型(原始类型) 和引用数据类型。

3. 基本数据类型细分为4小类,分别是整数类型、浮点类型、字符类型、布尔类型。

4. 整数类型包含byte、short、int、long;浮点类型包含float、double;字符类型为char;布尔类型为boolean。

5. 引用数据类型包含类、接口、数组、枚举、注解等。

6. Java里所有基本数据类型的长度是固定的,不会跟随操作系统、运行平台的变化而改变,这也是Java跨平台特性的基础。

7. Java不支持C/C++里的指针类型、结构体、联合体这类数据结构。
2.3.1 布尔类型

1. 布尔类型使用关键字boolean来定义。

2. boolean类型只有两个固定取值:true(真)和false(假)。

3. Java里的布尔值和数字0、1没有对应转换关系,不能和整数互相强制转换。
2.3.2 字符类型

1. 字符类型用关键字char定义,本质是16位的Unicode编码字符。

2. char类型取值范围一共可以表示65536个字符。

3. 字符常量需要用单引号' '包裹,比如char c = 'a';。

4. 字符可以直接和整数进行运算,运算时char会自动提升为int整数类型。

5. 整数也可以通过强制类型转换变为char字符类型。

6. Java提供了多种转义字符,用来表示特殊符号,比如\n换行、\t制表符、\\反斜杠等。
2.3.3 整数类型

1. Java的整数一共有4种进制书写表示:
① 十进制:正常数字写法,首位不能为0
② 八进制:以数字0开头
③ 十六进制:以0x或0X开头
④ 二进制:以0b或0B开头

2. 不同整数类型占用的内存位数不同,从小到大依次为byte、short、int、long。

3. 定义long类型常量时,需要在数字末尾加大写L(小写l也可以,不推荐)。

4. 整数默认的基础类型为int,如果数值超出int范围,必须定义为long类型。
2.3.4 浮点类型

1. 浮点类型分为两种:单精度浮点数float、双精度浮点数double。

2. Java里小数数值默认类型为double。

3. 定义float类型常量时,数值末尾必须加大写F;定义double常量末尾可以加大写D,也可以省略。

4. 浮点数有两种书写形式:
① 标准记数法:由整数部分、小数点、小数部分组成
② 科学记数法:使用字母e/E表示10的次方

5. 浮点数值不适合用于高精度、不能允许舍入误差的金融计算场景。
2.3.5 不同数据类型间的相互转换

1. 转换分为两大类:自动类型转换(隐式转换) 和强制类型转换(显式转换)。

2. 自动类型转换:
① 前提:两种数据类型彼此兼容
② 规则:取值范围小的类型,自动向取值范围大的类型转换
③ 转换顺序:byte→short→char→int→long→float→double

3. 强制类型转换:
① 适用场景:大范围类型转为小范围类型,无法自动完成
② 写法:在变量前加小括号,括号内写目标类型
③ 风险:强制转换可能出现精度丢失、数值溢出的问题

4. 运算时的类型提升:多种不同类型数据一起运算,系统会统一先把所有数据提升为范围最大的目标类型,再进行最终计算。

更多推荐