轻松熊喵喵个人笔记 -- Java 基础语法之基本数据结构
基本数据结构
Java 的基本数据类型有 8 种,包括 6 种数字类型、1 种字符类型和 1 种布尔类型。
基本数据类型总览
数字类型包括 4 种整数类型和 2 种浮点数类型,4 种整数类型是 byte、short、int 和 long,2 种浮点数类型是 float 和 double。
字符类型是 char,用于表示单个字符。Java 使用统一码对字符进行编码。
布尔类型是 boolean,包括 true 和 false 两种取值。
数字类型直接量
直接量是在程序中直接出现的常量值。
将整数类型的直接量赋值给整数类型的变量时,只要直接量没有超出变量的取值范围,即可直接赋值,如果直接量超出了变量的取值范围,则会导致编译错误。
整数类型的直接量默认是 int 类型,如果直接量超出了 int 类型的取值范围,则必须在其后面加上字母 L 或 l,将直接量显性声明为 long 类型,否则会导致编译错误。
浮点类型的直接量默认是 double 类型,如果要将直接量表示成 float 类型,则必须在其后面加上字母 F 或 f。将 double 类型的直接量赋值给 float 类型的变量是不允许的,会导致编译错误。
基本数据类型之间的转换
有时需要把不同类型的值混合运算,因此需要对数据类型进行转换。
数字类型转换
不同的数字类型对应不同的范围,按照范围从小到大的顺序依次是:byte、short、int、long、float、double。
将小范围类型的变量转换为大范围类型称为拓宽类型,不需要显性声明类型转换。将大范围类型的变量转换为小范围类型称为缩窄类型,必须显性声明类型转换,否则会导致编译错误。
字符类型与数字类型之间的转换
字符类型与数字类型之间可以进行转换。
将数字类型转换成字符类型时,只使用整数的低 16 位(浮点数类型将整数部分转换成字符类型)。
将字符类型转换成数字类型时,字符的统一码转换成指定的数值类型。如果字符的统一码超出了转换成的数值类型的取值范围,则必须显性声明类型转换。
布尔类型不能与其他基本数据类型进行转换
布尔类型不能转换成其他基本数据类型,其他基本数据类型也不能转换成布尔类型。
1、以下写法中,会导致编译错误的是?(多选题)
A:byte b = 30;
B:byte b = 500;
C:long l = 2343223;
D:float f = 3.14;
正确答案是 B D:
B 选项中,500 超出了 byte 类型的取值范围,因此会导致编译错误。D 选项中,3.14 是 double 型直接量,不能赋值给 float 类型的变量。
2、以下写法中,会导致编译错误的是?(单选题)
A:byte b = ‘b’;
B:byte b = (byte)‘b’;
C:short s = ‘\u8000’;
D:short s = (short)’\u8000’;
正确答案是 C:
将字符类型转换成数字类型时,字符的统一码转换成指定的数值类型,此时需要判断字符的统一码是否超出转换成的数值类型的取值范围。C 选项的字符直接量超出了 short 的取值范围且没有显性声明类型转换,因此会导致编译错误。
3、哪一种基本数据类型不能和其他基本数据类型进行类型转换?(简答)
答案:布尔类型 boolean 不能转换成其他基本数据类型,其他基本数据类型也不能转换成布尔类型 boolean。
ps:
数据类型常用的地方为创建方法时,下图中参数类型的位置。
参考: LeetBook