有一系列类需特别对待;可将它们想象成"基本","主要"或者"主"类型,进行程序设计时要频繁用到它们。之所以要特别对待,是由于用
new创建(特别是小的,简单的变量)并不是非常有效,因为new将对象置于"堆"里。对于这些类型Java采纳了与C和C++相同的方法。也就是说,不是用new创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中,能够更高效地存取。
Java决定了每种主要类型的大小。就象在大多数语言里那样,这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一
主类型 |
大小 |
最小值 |
最大值 |
封装器类型 |
---|---|---|---|---|
boolean |
1-bit |
– |
– |
Boolean |
char |
16-bit |
Unicode 0 |
Unicode 216- 1 |
Character |
byte |
8-bit |
-128 |
+127 |
Byte[11] |
short |
16-bit |
-215 |
+215 – 1 |
Short1 |
int |
32-bit |
-231 |
+231 – 1 |
Integer |
long |
64-bit |
-263 |
+263 – 1 |
Long |
float |
32-bit |
IEEE754 |
IEEE754 |
Float |
double |
64-bit |
IEEE754 |
IEEE754 |
Double |
void |
– |
– |
– |
Void1
|
数值类型全都是有符号(正负号)的,所以不必费寻找没有符号的类型。
主数据类型也拥有自己的“封装器”(wrapper)类。这意味着假如想让堆内一个非主要对象表示那个主类型,就要使用对应的封装器。例如:
char c='x' Character C =new Character('c'); 也可以直接使用: Character C = new Character('c');