JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
java8新特征详解
java文件操作专题教程

知识点

相关文章

更多

最近更新

更多

Java Number类

2019-03-28 22:35|来源: 网络

Java Number类

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double等。

实例

int i = 5000;
float gpa = 13.65;
byte mask = 0xaf;

然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java语言为每一个内置数据类型提供了对应的包装类。

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。

Java Number类

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。

下面是一个装箱与拆箱的例子:

public class Test{

   public static void main(String args[]){
      Integer x = 5; // boxes int to an Integer object
      x =  x + 10;   // unboxes the Integer to a int
      System.out.println(x); 
   }
}

以上实例编译运行结果如下:

15

当x被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。


Number类的成员方法

下面的表中列出的是Number类的方法:

序号 方法与描述
1 xxxValue()
将number对象转换为xxx数据类型的值并返回。
2 compareTo()
将number对象与参数比较。
3 equals()
判断number对象是否与参数相等。
4 valueOf()
返回一个Integer对象指定的内置数据类型
5 toString()
以字符串形式返回值。
6 parseInt()
将字符串解析为int类型。
7 abs()
返回参数的绝对值。
8 ceil()
对整形变量向左取整,返回类型为double型。
9 floor()
对整型变量向右取整。返回类型为double类型。
10 rint()
返回与参数最接近的整数。返回类型为double。
11 round()
返回一个最接近的int、long型值。
12 min()
返回两个参数中的最小值。
13 max()
返回两个参数中的最大值。
14 exp()
返回自然数底数e的参数次方。
15 log()
返回参数的自然数底数的对数值。
16 pow()
返回第一个参数的第二个参数次方。
17 sqrt()
求参数的算术平方根。
18 sin()
求指定double类型参数的正弦值。
19 cos()
求指定double类型参数的余弦值。
20 tan()
求指定double类型参数的正切值。
21 asin()
求指定double类型参数的反正弦值。
22 acos()
求指定double类型参数的反余弦值。
23 atan()
求指定double类型参数的反正切值。
24 atan2()
将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
25 toDegrees()
将参数转化为角度。
26 toRadians()
将角度转换为弧度。
27 random()
返回一个随机数。

相关问答

更多
  • 容器是指放东西的物品,在JAVA里面也是这样的,比如 list 是可以用来放对象的列表 你也可以自定义一些类来放其它对象,那么,你定义的这个类就是其它对象的容器。 集合是一组可变数量的数据项,集合的种类包括列表,集,多重集,树和图,通俗地讲就是这么一堆东西。
  • 抽象类就是对类定义的一个框架,其它类可以按照这个框架来建立,减少代码量。 例如:水果是个抽象类,水果抽象类中定义了一个“吃”过程,这个过程是没法实现的(西瓜和猕猴桃显然有不同吃法),如果我要建立西瓜类,我就可以用水果抽象类这个框架,单独写西瓜“吃”的过程(切开,吃,扔掉皮)
  • Java语言规范没有规定限制,所以我们只有技术限制。 规范也没有要求特定的编译形式,所以即使技术限制也是模糊的。 Lambda表达式被编译到托管lambda表达式主体的类文件的方法中,但这不是严格要求的。 最值得注意的是,形式foo -> bar(foo)简单表达式可以像方法引用一样编译。 此外,相同的lambda表达式可以使用相同的方法进行编译。 这是一种目前尚未发生的优化,它也使调试变得更加困难,但原则上它是允许的。 另外,当智能编译器检测到极限即将达到的不太可能的情况时,智能编译器可以开始生成托管la ...
  • 另一个理论: 为什么shortValue()方法是具体的,但intValue()是否抽象为java.lang.Number? 根据Number类的文档,在JDK1.1中首先添加了方法byteValue和shortValue。 这与第一个JDK版本中已经提供的其他“Value”方法不同。 我的假设是,这两种方法是为了保持与Number的现有(也是非标准)子类的兼容性,否则这些子类在超类中增加了新的抽象方法。 要么 : 数字类中的抽象方法 一看他们的来源说为什么: public byte byteValue() ...
  • 你的代码没问题。 它似乎涵盖了这个问题。 Your code is OK. It seems that it covers the issue.
  • OntClass.getSuperClass()的javadoc说: 这个类的超类或null A不会有超类。 The javadoc for OntClass.getSuperClass() says: A super-class of this class or null A will not have a superclass.
  • 你不能实例化一个接口,你需要一个具体的子类。 但是,创建具体的子类只会增加您尝试避免的类的数量。 最好使用组合而不是继承 。 也就是说,如果您设法为表单创建通用接口,并在一个方法后面隐藏操作deleteCommitmentItem , deleteProgram等,则可以使用所需的表单(或提供此工具的工厂)参数化您的操作实例,例如: public class GenericAction implements ControllerAction { private Form form; private ...
  • Number.class.isAssignableFrom(someClass); 这应该够了吧 Number.class.isAssignableFrom(someClass); That should do the trick
  • 您正在寻找的术语是“ 圈复杂度 ”。 圈复杂度是一种软件度量(度量),用于指示程序的复杂性。 它是通过程序源代码的线性独立路径数量的定量度量。 如果您使用Eclipse作为IDE,那么有一个名为Eclipse Metrics的插件可以提供此类信息。 The term you are looking for is "cyclomatic complexity". Cyclomatic complexity is a software metric (measurement), used to indicate ...
  • 假设您想要计算包含org.junit or org.mockito的行数 然后你想做 while (testScanner.hasNextLine()) { String test = testScanner.nextLine(); if (test.contains("org.junit") || test.contains("org.mockito")) { hasTestLines ...