java数据类型

数据类型

Java 基本类型共有八种,基本类型可以分为三类,字符类型 char,布尔类型 boolean 以及数值类型 byte、short、int、long、float、double。数值类型又可以分为整数类型 byte、short、int、long 和浮点数类型 float、double。JAVA 中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA 中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 种类型表示范围如下:

  • byte:8 位,最大存储数据量是 255,存放的数据范围是 - 128~127 之间。
  • short:16 位,最大数据存储量是 65536,数据范围是 - 32768~32767 之间。
  • int:32 位,最大数据存储容量是 2 的 32 次方减 1,数据范围是负的 2 的 31 次方到正的 2 的 31 次方减 1。
  • long:64 位,最大数据存储容量是 2 的 64 次方减 1,数据范围为负的 2 的 63 次方到正的 2 的 63 次方减 1。
  • float:32 位,数据范围在 3.4e-45~1.4e38,直接赋值时必须在数字后加上 f 或 F。
  • double:64 位,数据范围在 4.9e-324~1.8e308,赋值时可以加 d 或 D 也可以不加。
  • boolean:只有 true 和 false 两个取值。
  • char:16 位,存储 Unicode 码,用单引号赋值。

Java 决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是 Java 程序具有很强移植能力的原因之一。下表列出了 Java 中定义的简单类型、占用二进制位数及对应的封装器类。

java数据类型_第1张图片

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:

  • 基本类型 byte 二进制位数:Byte.SIZE 最小值:Byte.MIN_VALUE 最大值:Byte.MAX_VALUE
  • 基本类型 short 二进制位数:Short.SIZE 最小值:Short.MIN_VALUE 最大值:Short.MAX_VALUE
  • 基本类型 char 二进制位数:Character.SIZE 最小值:Character.MIN_VALUE - 最大值:Character.MAX_VALUE
  • 基本类型 double 二进制位数:Double.SIZE 最小值:Double.MIN_VALUE 最大值:Double.MAX_VALUE

注意:float、double 两种类型的最小值与 Float.MIN_VALUE、 Double.MIN_VALUE 的值并不相同,实际上 Float.MIN_VALUE 和 Double.MIN_VALUE 分别指的是 float 和 double 类型所能表示的最小正数。也就是说存在这样一种情况,0 到 ±Float.MIN_VALUE 之间的值 float 类型无法表示,0 到 ±Double.MIN_VALUE 之间的值 double 类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。 Float 和 Double 的最小值和最大值都是以科学记数法的形式输出的,结尾的”E + 数字” 表示 E 之前的数字要乘以 10 的多少倍。比如 3.14E3 就是 3.14×1000=3140,3.14E-3 就是 3.14/1000=0.00314。 Java 基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从 Java5.0(1.5)开始,JAVA 虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括 void)的包装类都使用了 final 修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。 基本类型的优势:数据存储相对简单,运算效率比较高 包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了 java 一切皆是对象的思想

你可能感兴趣的:(java数据类型)