黑马程序员____基本类型

 

----------------------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


    



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值