----------------------android培训、java培训、期待与您交流! ----------------------
Java定义了8种基本类型:
Boolean 布尔型,其值为false或true.
Char 16位统一码,例如,’B’或’π’。
Byte 8位整数,取值范围为-128~127。
Short 16位整数,取值范围为-32768~32767。
Int 32位整数,取值范围为-2147483648~2147483647。
Long 64位整数,取值范围为-9223372036854775808~922337203685807。
Float 32位浮点小数,取值范围为(正或负)1.4E-45F~3.4E38F。
Double 64位浮点小数,取值范围为(正或负)4.9E-324~1.8E308。
注意,浮点数在写法上用F作为后缀以便与类型double的值相区别。
每一个Unicode字符文字可以用’\uxxxx’的方式表示,其中x是任意的十六进制数字。例如,’B’的Unicode值为’\u0042,而’π’为’\u03C0’。
除了数字以外,浮点变量还可以有3个特殊的值——NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN(表示非数字值)。这些特殊的值由非正常的算术操作所产生。
例1 浮点类型中的特殊值
public class Ex0102
{
public static void main(String[] args)
{
double x = 1E200;
System.out.println("x="+x);
System.out.println("x*x="+x*x);
System.out.println("(x*x)/x="+(x*x)/x);
System.out.println("(x*x)/(x*x)="+(x*x)/(x*x));
}
}
经编译后运行该程序,其输出将为:
在上例中,x*x的值是Infinity,这是由于10^200*10^200=10^400,该值超出了double型值的最大值1.8E308。
从代数角度讲,(x*x)/x=x,但当X为无穷数时,情况并非如此,因为一个无穷数除以一个非负的有限数时仍然是无穷数,这就是(x*x)/x=Infinity的原因(此时,x*x是一个无穷数,而x是一个有穷数)。
最后,一个无穷数除以一个无穷数甚至不是一个无穷数,这点在带书上讲是不确定的,因此,在Java语言中,其值为NaN。
对8种基本类型中的每一种而言,Java均提供了一个包装类(Wrapperclass),它为基本类型的操作提供面向对象的服务机制,例如,对double类型的包装类是Double,类型int的包装类是Integer。
例2 包装类的使用
public class Ex0103
{
public static void main(String[] args)
{
String s = "2.7182818284590";
System.out.println("s = "+s);
Double x = new Double(s);
System.out.println("x = "+x);
double y = x.doubleValue();
System.out.println("y = "+y);
s += 45;
System.out.println("s = "+s);
y += 45;
System.out.println("y = "+y);
int n = x.intValue();
System.out.println("n = "+n);
n = Integer.parseInt("3A9",16);
System.out.println("n = "+n);
}
}
经编译后运行该程序,其输出将为:
在上述程序中,构造器Double(s)将从String对象s生成Double对象x,将数值2.7182818284590放入对象x中。第二个println()将阴寒地调用Double.toString()方法,它将数值转换成字符串用于打印输出。而x.doubleValue调用将返回所存储的数值,并把该值赋给y。+=操作将应用到String对象s上,对double类型变量y也进行看似同样的操作,但实际产生的结果是截然不同的。对字符串而言,“+=”代表的操语义是“添加”,即把第二个字符串添加到第一个字符串上,而对数值而言,“+=”代表“增加”,即把第二个数加到第一个上面。
接下来,Double.intValue()方法将对存储的数值进行截取,产生整数2,并用该值对n进行初始化。最后,Integer.parseInt(“3A9”,16)将对十六进制的数值3A9进行转换,返回十进制的整数值。因为3(16^2)+10(16)+9=937,所以返回值为937。
应注意到对字符串和数字值y进行+操作时,将自动地把数值y转换为该数值的字符串表示,如系统调用System.out.println(“y=”+y)中的+操作就是如此。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima