查看这个链接,是oracle的官方文档,里面有详细的解释。
Source Link - Oracle Documentation
为了快速参考,引用文档中的要点。
字节:
字节数据类型是一个 8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。字节数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。它们也可以用来代替 int ,它们的限制有助于澄清您的代码;变量的范围有限这一事实可以作为一种文档形式。
短:
short 数据类型是一个 16 位有符号二进制补码整数。它的最小值为 -32,768,最大值为 32,767(含)。与 byte 一样,适用相同的准则:您可以在大型数组中使用 short 来节省内存,在内存节省实际上很重要的情况下。
int:
默认情况下,int 数据类型是 32 位有符号二进制补码整数,最小值为 -231,最大值为 231-1。在 Java SE 8 及更高版本中,您可以使用 int 数据类型来表示一个无符号的 32 位整数,其最小值为 0,最大值为 232-1。使用 Integer 类将 int 数据类型用作无符号整数。有关更多信息,请参阅数字类部分。在 Integer 类中添加了 compareUnsigned、divideUnsigned 等静态方法,以支持无符号整数的算术运算。
长:
long 数据类型是 64 位二进制补码整数。带符号的 long 的最小值为 -263,最大值为 263-1。在 Java SE 8 及更高版本中,您可以使用 long 数据类型来表示无符号的 64 位 long,其最小值为 0,最大值为 264-1。当您需要比 int 提供的值范围更广的值时,请使用此数据类型。 Long 类还包含 compareUnsigned、divideUnsigned 等方法,以支持 unsigned long 的算术运算。
浮动:
float 数据类型是单精度 32 位 IEEE 754 浮点数。它的值范围超出了本次讨论的范围,但在 Java 语言规范的浮点类型、格式和值部分中指定。与 byte 和 short 的建议一样,如果您需要在大型浮点数数组中节省内存,请使用浮点数(而不是双精度数)。此数据类型绝不应用于精确值,例如货币。为此,您需要改用 java.math.BigDecimal 类。 Numbers and Strings 涵盖了 Java 平台提供的 BigDecimal 和其他有用的类。
双倍:
双精度数据类型是双精度 64 位 IEEE 754 浮点数。它的值范围超出了本次讨论的范围,但在 Java 语言规范的浮点类型、格式和值部分中指定。对于十进制值,此数据类型通常是默认选择。如上所述,这种数据类型决不能用于精确值,例如货币。
布尔值:
布尔数据类型只有两个可能的值:真和假。将此数据类型用于跟踪真/假条件的简单标志。这种数据类型代表一种信息,但它的“大小”并不是精确定义的。
字符:
char 数据类型是单个 16 位 Unicode 字符。它的最小值为 '\u0000'(或 0),最大值为 '\uffff'(或 65,535 包括在内)。
除了上面列出的八种原始数据类型之外,Java 编程语言还通过 java.lang.String 类提供对字符串的特殊支持。用双引号将字符串括起来会自动创建一个新的 String 对象;例如,String s = "这是一个字符串";。字符串对象是不可变的,这意味着一旦创建,它们的值就不能改变。 String 类在技术上不是原始数据类型,但考虑到该语言对它的特殊支持,您可能会倾向于这样认为。您将在简单数据对象中了解有关 String 类的更多信息