我的java学习日记(七)java数字

  • 时间:
  • 浏览:
  • 来源:互联网

java数字

number

一般在写程序时,当使用到数字时,多数都是在代码中使用原始数据类型,如int类型、float类型、byte类型等。这样书写代码比较简单易懂。例如在下面的代码中,有三个不同的数据类型,分别表示三个数字。

int i=320;
float price = 3.14f;
byte mask = 0xaf;
boolean flag =flase;

然而,在面向对象的程序设计中,很多时候由使用对象来代替原始类型显得更加合理。从JDK 5.0开始,Java平台为每一个原始数据类型都提供有“包装器(wrapper)”类。这些类将原始数据“包装”成对象。所以经常地,当程序中一个期望是对象的地方使用了原始数据,那么编译器会将原始数据“装箱”至其包装器中。同样地,当程序中一个期望是原始数据的地方使用了一个数字对象,编译器会将对象“拆箱”。这就是JDK 5.0中的自动装/拆箱新特性。下面是一个装箱和拆箱的示例。

Integer x,y;
x=17;
y=25;
System.out.println(x+y);

当x和y分别被赋予整型值17和25时,编译器会对这些整型值进行装箱操作,因为x和y都是整型对象。而在println()语句中,x和y对象被拆箱,这样它们才能被作为整数相加。所有的数字包装器类都是抽象类Number的子类

使用自动装/拆箱的代码显得更加简洁易懂,符合程序员的思维习惯,并相应地减少了代码量。使用Number对象除了这个好处之外,还有三个理由支持使用Number对象而不是使用原始数据类型。

数字的格式化输出

大家可能已经注意到使用print()和println()方法用于打印字符串到标准输出(System.out)

因为所有的数字都能被转换到字符串,所以程序员可以使用这些方法来打印出任意一个字符串和数字的混合

不过,Java程序设计语言提供有另外一些方法,当输出内容包含有数字时,程序员可以使用这些方法对打印输出进行更多的控制。

printf()和format()方法

在java.io包中,包括有一个PrintStream类,这个类有两个格式化方法可以被用来替代print()和println()方法。这两个格式化方法是format()和printf(),它们彼此是等价的。大家已经很熟悉并且经常使用的System.out恰好就是一个PrintStream对象,因此可以在System.out上调用PrintStream()方法。如此一来,程序员就可以在代码中先前任何使用print()或println()方法的地方使用format()或printf()了。例如:

System.out.format(........);

这两个java.io.PrintStream方法的语法是相同的,如下所示。

public PrintStream format (String format,Object ... args);

这里,参数format是一个字符串,指明了被使用的格式,参数args是要使用指定格式被打印的变量列表。示例:

System.out.format("flaot类型变量的值为%f,整形变量的值为%d,字符串类型为%s",flatvar,intvar,stringvar);

在这个代码中,第一个参数format是一个格式字符串,详细说明在第二个参数args中的对象是如何被格式化的。格式字符串包含纯文本,如“格式说明”,这是特殊的字符,用来格式化Object… args参数。

本文链接http://www.dzjqx.cn/news/show-617024.html