java的基本数据类型有哪些?
Java 的基本数据类型是 Java 学习的基础,让我们看看 Java 的基本数据类型都有哪些?
01. 基本数据类型
Java 中一共有 8 种基本数据类型:
其中 boolean 比较特殊,在 java 规范中给出了 boolean 当做 int 处理(4 byte),boolean 数组用 byte 数组实现(1 byte)的定义,具体还要看虚拟机实现是否按照规范实现。
装箱与拆箱:基本类型与其对应的包装类型之间自动进行转换。
Integer x = 1; // 装箱:基本类型转包装类型,1 是 int 类型,调用了 Integer.valueOf(1)
int y = x; // 拆箱:包装类型转基本类型,调用了 x.intValue()
02. 自动类型转换
由低字节向高字节自动转换;黑线表示无数据丢失,红线表示可能发生精度丢失。
03. 强制数据转换
由高字节向低字节转换,存在精度损失的风险,需要在代码中强制转换。
int n = (int)56.56
04. 类型提升
操作不同数据类型,会自动向字节更大的数据类型提升。
所有的byte,short,char型的值将被提升为int型;
有一个操作数是long型,计算结果是long型;
有一个操作数是float型,计算结果是float型;
有一个操作数是double型,计算结果是double型。
05. 隐式类型转换
让我们看看这几行代码:
ch = ch + 1 : 因为 1 是 int 类型,ch + 1 会转成更高范围的 int ,所以这里编译会报错,cannot convert from int to char
ch ++ : 会正常编译执行,结果是 'b',因为这里有个隐式类型转换,相当于 ch = (short) (ch + 1)
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注;关注我后,可私信发送数字【1】,获取海量学习资料。
第一种类型:整数类型,它包括long、int、short、byte这四种类型,依次所占据的位数为64、32、16、8位,这样这四种类型在有符号数的前提下可表示的数据范围如下所示。
我们使用程序进行验证,可以证实我们的结论。
我们使用程序进行验证,可以证实我们的结论。其中使用到的Byte、Short、Integer与Long都是四种基本类型的封装类,这个我们后面再说。
接下来介绍字符类型。字符类型用char表示,在内存中占用两个字节即16位,用于存储英文字母、标点符号等字符,每个字符用一对单引号''引起来。在计算机中用不同的0、1组合表示不同的字符,于是有不同的编码。为了保证不同编码之间的编码冲突,Java采用了Unicode编码,它为每一个字符确定了一个唯一的编码。
这样,从某种意义上讲,char字符也是一种特殊的整数类型。我们可以实现char与整数的自动转化。(在unicode中'a'用97表示)
接着介绍浮点类型float与双精度浮点类型double。float类型在内存中占据4个字节,表示范围大约在-3.4*10^38到3.4*10^38之间。double类型在内存中占据8个字节表示范围大约在-1.7*10^308到1.7*10^308之间。至于原因,涉及到浮点数在内存中表示,这里不再赘述,后面会详细解释。
默认的浮点数类型为double。因此若将一个浮点数直接赋值给一个float变量是错误的,必须在数组后加上f或F。
最后一种布尔类型boolean的变量值只有true与false两种,用于表示条件判断的真与假。这个类型可能有些抽象,我们会在后面的程序中经常遇到,读者可以认真体会。