Java是一种强类型语言,在声明变量的时必须指定数据类型。Java数据类型分为基本数据类型和引用类型,基本数据类型分为8种,也是我们编程中使用最频繁的类型,本篇文章简要介绍Java的八大数据类型。
八大数据类型一览
| 类型名称 | 类型定义 | 占用大小 | 取值范围 | 默认值 | 封装类 |
|---|---|---|---|---|---|
| boolean | 布尔值,用作二元判断 | Java规范中,没有明确指出boolean的大小。JVM规范中,boolean变量作为int处理,也就是4字节,boolean数组当做byte数组处理。 | true,false | false | java.lang.Boolean |
| char | Unicode字符 | 2字节/16位 | \u0000 ~ \uffff |
\u0000 |
java.lang.Character |
| byte | 有符号整数 | 1字节/8位 | -128 ~ 127 | 0 | java.lang.Byte |
| short | 有符号整数 | 2字节/16位 | -32768 ~ 32767 | 0 | java.lang.Short |
| int | 有符号整数 | 4字节/32位 | -2,147,483,648(-2^31) ~ 2,147,483,647(2^31-1) | 0 | java.lang.Integer |
| long | 有符号整数 | 8字节/64位 | -2^63 ~ 2^63-1 | 0L | java.lang.Long |
| float | 单精度浮点数 | 4字节/32位 | 1.4E-45 ~ 3.4028235E38 | 0.0F | java.lang.Float |
| double | 双精度浮点数 | 8字节/64位 | 4.9E-324 ~ 1.7976931348623157E308 | 0.0D | java.lang.Double |
注意:在Java中,默认声明的小数是double类型,默认声明的整数是int类型。
类型转换
整型、浮点型、字符型数据可以混合运算,运算中,不同类型的数据会转换成相同类型,然后进行运算。
低 ———————————————————-> 高
byte,short,char—>int—>long—>float—>double
从低级转到高级是自动类型转换,这是一种默认的转换,从高级转到低级需要强制类型转换,这么做可能会导致精度丢失。
1 | byte a = 111; |
char类型转换为整型时会转为字符对应的ASCII码值。
不能对boolean类型进行类型转换。
类型的自动提升
在基本类型的混合运算中,最后的结果类型会是参与运算的最高级的类型, 关于类型的自动提升,注意下面的规则。
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
④如果有一个操作数是double型,计算结果是double型;
整型的进制
Java中默认声明整型的进制为十进制,当然也可以通过特殊的表示方法表示常用的二进制,八进制和十六进制。
1 | // 十进制表示 |
转义字符
Java中char类型包含一些特殊的转义字符,这些字符通常具有一些特殊的含义。
| 符号 | 字符含义 |
|---|---|
\n |
换行 (0x0a) |
\r |
回车 (0x0d) |
\f |
换页符(0x0c) |
\b |
退格 (0x08) |
\0 |
空字符 (0x20) |
\s |
字符串 |
\t |
制表符 |
\" |
双引号 |
\' |
单引号 |
\\ |
反斜杠 |
\ddd |
八进制字符 (ddd) |
\uxxxx |
16进制Unicode字符 (xxxx) |
包装类与自动拆装箱
八大数据类型都有其对应的包装类,参见类型一览表,包装类可以直接对其赋值(自动装箱),包装类可以直接参与运算(自动拆箱),包装类具有非常多的静态和普通方法,这扩展了基本类型的功能,这在平时的编码中会有很多的运用。