大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip: 资 料类型

程序在执行的过程中,需要运算许多的信息,也需要储存许多的信息,这些信息可能是由使用者输入、从文件中取得,甚至是由网路上得到,在程序运行的过程中, 这些信息透过“变量”(Variable)加以储存,以便程序随时取 用。

一个变量用来指向一个内存空间,数据就是储存在这个空间中,使用变量名称来取得数据相信会比使用内存位置来得方便;然而由于数据在储存时所需要的容量 不一,不同的数据必须要配给不同的空间大小来储存,在Java中对不同的数据区分有几种不同的“数据类型”(Data type)。

在Java中基本的数据类型主要区分为“整数”(Integer)、“位元”(Byte)、“浮点数”(Float)、“字节”(Character)与 布林数(Boolean)几种,而这几种还可以细分,如下所示:

 整数

只储存整数数值,可细分为“短整数”(short)(占2个位元组)整数(int)(占4个位元组)长整数(long)(占8个位元组),长整数所占的内存比整数来得多,可表示 的数值范围也就较大,同样的整数可表示的整数数值范围也比短整数来得大。

位元

Java提供有byte数据类型,专门储存位元数据,例如影像位元资 料,一个byte数据类型占一个位元组,而必要的话,byte数据类型也可以用于储存整数数值。

浮点数

主要用来储存小数数值,也可以用来储存范围更大的整数,可分为浮点数(float) (占4个位元组)双精度浮点数(double)(占8个位元组), 双精度浮点数所使用的内存空间比浮点数来得多,可表示的数值范围与精确度也比较大。

字节

用来储存字节,Java的字节采Unicode编码,其中前128个 字节编码与ASCII编码相容;每个字节数据类型占两个位元组,可储存的字节范围由\ u0000到\uFFFF,由于Java的字节采用Unicode编码,一个中文字与一个英文字母在Java中同样都是用一个字节来表示。

布林数

占内存2个位元组,可储存truefalse两 个数值,分别表示逻辑的“真”与“假”。


因为每种数据类型所占有的内存大小不同,因而可以储存的数值范围也就不同,例如整数int的内存空间是4个位元组,所以它可以储存的整数范围为- 2147483648至2147483647,如果储存值超出这个范围的话称之为“溢 值”(Overflow),会造成程序不可预期的结果,您可以使用下面这个程序获得数值的储存范围:

  • DataTypeMaxMin.java
public class DataTypeMaxMin { 
public static void main(String[] args) {
System.out.printf("short range: %d ~ %d\n",
Short.MAX_VALUE,
Short.MIN_VALUE);
System.out.printf("int range: %d ~ %d\n",
Integer.MAX_VALUE,
Integer.MIN_VALUE);
System.out.printf("long range: %d ~ %d\n",
Long.MAX_VALUE,
Long.MIN_VALUE);
System.out.printf("byte range: %d ~ %d\n",
Byte.MAX_VALUE,
Byte.MIN_VALUE);
System.out.printf("float range: %e ~ %e\n",
Float.MAX_VALUE,
Float.MIN_VALUE);
System.out.printf("double range: %e ~ %e\n",
Double.MAX_VALUE,
Double.MIN_VALUE);
}
}

其中Byte、Integer、Long、Float、Double都 是java.lang包下的类名称,而 MAX_VALUEMIN_VALUE则是各类中所定义的静态常量成员,分别表示该数据类型可储 存的数值最大与最小范围,%e表示用科学记号显示,执行结果如下所示:
short range: 32767 ~ -32768
int range: 2147483647 ~ -2147483648
long range: 9223372036854775807 ~ -9223372036854775808
byte range: 127 ~ -128
float range: 3.402823e+38 ~ 1.401298e-45
double range: 1.797693e+308 ~ 4.900000e-324


其中浮点数所取得是正数的最大与最小范围,加上负号即为负数的最大与最小范围。