Java基本类型
Java中的变量分为基本类型和引用类型。基本类型是一些特别小的、简单的变量,对于这种变量,直接存储值并放在堆栈中会更高效;引用类型是和Java对象所关联的一个操纵对象的标识符,可以通过new操作符使引用和相应的对象相关联。
Java提供了八中基本类型,其中有六种数字类型(四个整数型、两个浮点型),一种字符类型,一种布尔类型。每种基本类型所占的存储空间的大小都是确定的,它们并不像其他大多数语言那样随机器硬件架构的变化而变化。这就是Java比其他大多数语言所编写的程序更具可移植性的原因之一。
byte
- byte数据类型是8位的、有符号的、以二进制补码表示的整数;
- byte能表示的最大值为 +127(2^7-1), 最小值为 -128(-2^7);
- byte数据类型多用于I/O流,因为8bits是数据存取的常用最小单位。
short
- short数据类型是16位的、有符号的、以二进制补码表示的整数;
- short能表示的最大值为 32767(2^15-1),最小值是 -32768(-2^15);
- short类型常用于存储一些比较小的整数。
int
- int 数据类型是32位的、有符号的、以二进制补码表示的整数;
- int能表示的最大值是 2,147,483,647(2^31 - 1),最小值是 -2,147,483,648(-2^31);
- 一般的整型变量默认为int类型。
long
- long 数据类型是 64 位的、有符号的、以二进制补码表示的整数;
- long能表示的最大值是 9,223,372,036,854,775,807(2^63 -1),最小值是 -9,223,372,036,854,775,808(-2^63);
- long主要用于存储比较大的整数。
- long类型初始化需要在整数后加L/l,否则这个整数将作为int型解析,可能会导致溢出。
float
- float 数据类型是单精度的、32位的、有符号的、符合IEEE 754标准的浮点数;
- float用来表示精确度较低的浮点数,有效范围为7位。
double
- double 数据类型是双精度的、64 位的、有符号的、符合IEEE 754标准的浮点数;
- double用来表示精确度较高的浮点数,有效范围为16位。
boolean
- boolean数据类型只有ture、false两种值;
- boolean类型所占存储空间的大小没有明确指定。
char
- char数据类型是16位的、单一的Unicode字符。
- char最大值是 \uffff(即为65,535),最小值是 \u0000(即为0);
自动类型转换
不同的数据类型之间可以混合运算,Java会将它们转换成同一类型,然后再进行运算,转换从低级转换到高级:
1 | //低--------------------------------------------高 |
自动类型转换只能从低级向高级转换,不能对boolean进行类型转换。
强制类型转换
强制类型转换可以从高级转换到低级,但有可能会损失精度。
1 | public class Main { |