Java的数据类型

Java的数据类型_第1张图片

 

在Java中,一共有8种基本类型——4种整型、2种浮点类型、1种字符类型char、1种boolean类型。

1. 整型

整型用于标识没有小数部分的数,可以是负数。Java提供了4种整型,如下:

Java 整型
类型 存储需求 取值范围
int 4字节 -2 147 483 648 ~ 2 147 483 647 (略高于20亿)
short 2字节 -32 768 ~ 32 767
long 8字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte 1字节 -128 ~ 127

通常情况下,int类型最常用,但若是需要表示整个地球的居住人口,则需要使用long类型。

byte和short类型主要用于特定的应用场合,如底层文件处理货存储空间有限的大数组。

▲ 各种数据类型的取值范围

各种数据类型的取值范围是固定的,如下:

长整型数值有一个后缀 L 或1 (如4000000000L),

十六进制数值有一个前缀0x 或 0X (如0xCAFE),

八进制有一个前缀0 (如 010 对应十进制中的8),

二进制数在八进制的基础上有一个前缀0b 或 0B(如0b1001 就是9),

其中八进制表示法比较容易混淆。

另外,可以位数字字面量加下划线(如 1_000_000 (或 0b1111_0100_0010_0100_0000)表示100万),下划线只为了让人更易读。

2. 浮点类型

浮点类型表示有小数部分的数值。Java有两种浮点类型,如下:

浮点类型
类型 存储需求 取值范围
float 4字节 大约 ±3.402 823 47 x 10^386~7位有效数字)
double 8字节 大约 ±1.797 693 134 862 315 70 x 10^308 15位有效数字)

double表示这种类型的数值精度是float类型的两倍(即双精度数)。

float 类型的数值有一个后缀 F 或 f (例如 3.14F),没有后缀F的浮点数值(如3.14)则默认为double类型,也可以在double数值后面添加后缀 D 或 d(例如,3.14D)。

▲ 遵循IEEE754规范

所有浮点数计算都遵循IEEE754规范。具体有3个特殊的浮点数值表示溢出和出错情况:

* 正无穷大

* 负无穷大

* NaN(不是一个数)

例如,一个正整数除以0的结果为正无穷大;计算0/0或者负数的平方根结果为NaN。

3. char类型

char类型原本用于表示单个字符。如今有些Unicode字符可用一个char值描述,另一些Unicode字符需要用两个char值。

char类型的字面量值要用单引号括起来,如:'A' 是编码值为65的字符常量,与"A"不同,"A"是一个包含一个字符的字符串, "Hello"是包含5个字符的字符串。

▲ 转义序列

■ 转义序列 \u

char类型的值可以表示为十六进制值,其范围从\u0000 ~ \uFFFF。如:\u03C0表示希腊字母Π。

■ 特殊字符

表示特殊字符的转义序列,见下表:

特殊字符的转义序列
转义序列 名称 Unicode值 转义序列 名称 Unicode值
\b 退格 \u0008 \" 双引号 \u0022
\t 制表 \u0009 \' 单引号 \u0027
\n 换行 \u000a \\ 反斜线 \u005c
\r 回车 \u000d \s 空格。在文本块中用来保留末尾空白符 \u0020
\f 换页 \u000c \newline 只在文本块中使用:连接这一行和下一行 -

可以加在引号的字符字面量或字符串中使用这些转义序列。如:'\u2122'或"Hello\n"。

P.S. 转义序列\u还可以在加引号字符常量或字符串之外使用(而其他转义序列不可以),如:

public static void main(String\u005B\u005D args)

4. boolean类型

boolean(布尔)类型有两个值:false 和 true,用来判定逻辑条件。

※ 整型值和布尔值之间不能进行相互转换。

你可能感兴趣的:(Java核心技术,java,开发语言)