我想弄清楚BigDecimal类所在的'Library'。当我读到引用信息时,它说:
java.lang.Object
java.lang.Number
java.math.BigDecimal
我不完全理解。我熟悉java.lang.Math类。我认为这完全不同 - 所以这是我的子问题:
首先 - 我说的是java Math类驻留在java.lang库中
第二 - java.math.BigDecimal是否扩展了java.lang.Number,如果没有,它们是如何相关的?
第三 - 与java.lang.math和java.math有关系吗?
答案 0 :(得分:1)
首先:是的,它存在于那里...... 只需查看文档。
第二:是的,它扩展了抽象类Number.java。 再次查看文档。
第三: java.lang.Math
包含执行基本数字操作的方法,例如 基本指数,对数,平方根和三角函数 功能
在BigDecimal"数学"的背景下只是一个包名。
java.lang.Math
是一个java类!
考虑包,因为它是您计算机中的文件夹。它是一个名称空间'一种组织类和接口的方法。 包 java.math 包含与数学相关的类,如BigDecimal.java和BigInteger.java
虽然类java.lang.Math是一个实际的Java class,它位于packae' java.lang'
所以 BigDecimal.java 和 Math.java 都是在两个不同的' 中驻留的Java类(想到文件夹)即使他们同时也是“数学”#34;相关的。
答案 1 :(得分:1)
你说的是包,而不是图书馆。
包是许多类文件的地方。一个类有两个名字。一个简单的名称Math
和一个限定名称,包名为后缀java.lang.Math
。这使得Java开发人员可以在他们的程序中使用许多具有相同简单名称的类,例如" Stream"例如。许多不同的"流"可以共享相同的简单名称,但如果愿意,可以在逻辑上分组到不同的名称空间或包。包不能映射到文件夹,但对于大多数Java项目,它们的映射方式,因此您可以将此实践称为事实上的标准"。
库基本上是一个包含已编译类文件的文件,因此您可以在程序中使用这些Java类型,而无需重新发明轮子。
Java Development Kit(JDK)为您提供了许多库,最值得注意的是rt.jar
。在我的Windows x64计算机上,它位于:
C:\ Program Files \ Java \ jdk1.8.0_20 \ jre \ lib
如果您使用任何知道如何打开ZIP文件的程序打开rt.jar
,您将在子文件夹Math.class
中找到已编译的类文件./java/lang/
。
你的两个第一个问题的答案是是。让代码成为法官:
// package java.lang, Java Platform API Specification, version 1.8
System.out.println(Math.class.getPackage());
// class java.lang.Number
System.out.println(BigDecimal.class.getSuperclass());