Java类库非常庞大,提供了许多实用的类供程序使用,在进行Java编程时,我们常常需要使用Java类库所提供的这些类,这些类对程序的功能和质量起到了非常重要的作用。
数学函数的使用:Math类
Java的java.lang.Math类提供了大量的方法,用于支持各种数学运算及其它的有关运算。
Math 类包含基本的数字操作,如指数、对数、平方根和三角函数。
Math类无需创建对象,其所有成员皆为静态(Static)成员。
Math类常量
E(自然对数): Math.E
PI(圆周率): Math.PI
Math类常用方法介绍:
abs():返回绝对值。
ceil():返回大于或等于参数的最小整数。
floor():返回小于或等于参数的最大整数。
max():返回两个参数的较大值。
min():返回两个参数的较小值。
random():返回0.0和1.0之间的double类型的随机数,包含0.0但不包含1.0。
round():返参数回四舍五入的整数值。
sin():返回参数的正弦值。
cos():返回参数的余弦值。
tan():返回参数的正切值。
exp():返回欧拉数 e 的参数次幂的值。
log():返回(底数是 e)参数 值的自然对数值。
sqrt()::返回参数的平方根。
pow():返回第一个参数的第二个参数次幂的值。
随机数的产生:Random类
java.util.Random类提供了一系列用于产生随机数的方法。
区别2种随机数类:
Math类的random()方法虽然也能产生随机数,但是它只能产生0.0-1.0之间的随机数。
Random类可以十分方便的产生自己需要的各种形式的随机数,十分方便。
Random类常用方法介绍:
next(int bits):生成下一个伪随机数。
nextInt() :返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
nextLong() :返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。
setSeed(long seed) :使用单个 long 种子设置此随机数生成器的种子。
Random类常用方法介绍:
next(int bits):生成下一个伪随机数。
nextInt() :返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
nextLong() :返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。
setSeed(long seed) :使用单个 long 种子设置此随机数生成器的种子。
处理时间与日期
Java语言提供了以下类来处理日期:
java.util.Date :包装了一个long类型数据,表示与GMT(格林尼治标准时间)的1970年1月1日00:00:00这一时刻所相距的毫秒数。
java.text.DateFormat :对日期进行格式化
java.util.Calendar :可以灵活地设置或读取日期中的年、月、日、分和秒等信息。
Date类以毫秒数来表示特定的时间和日期。
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
System.out.println("自1970-1-1以来的毫秒数:"
+ date.getTime());
// getTime():返回自1970 年1月1日00:00:00 GMT 以来的毫秒数
System.out.println("当前时间:" + date);
}
}
DateFormat 抽象类用于定制日期的格式,它以与语言无关的方式格式化并分析日期或时间。
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatDemo {
public static void main(String[] args) {
Date date = new Date();
// 设定日期格式
SimpleDateFormat f =
new SimpleDateFormat ("yyyy-MMMM-dd-EEEE");
// 按设定的格式输出
System.out.println(f.format(date));
// 设定新的格式
f = new SimpleDateFormat("yy/MM/dd hh:mm:ss");
// 再输出
System.out.println(f.format(date));
}
}
Calendar类提供了月历的功能,它拥有众多与日期相关的方法。但是Calendar类是一个抽象类,不能实例化,实际上这些功能都是由它的子类GregorianCalendar实现的。
import java.util.*;
public class Calendar1 {
public static void main(String[] args) {
GregorianCalendar gc =
new GregorianCalendar();
String now = gc.get(Calendar.YEAR) + "年"
+ (gc.get(Calendar.MONTH) + 1) + "月"
+ gc.get(Calendar.DATE) + "日"
+ gc.get(Calendar.HOUR) + "时"
+ gc.get(Calendar.MINUTE) + "分"
+ gc.get(Calendar.SECOND) + "秒";
System.out.println("当前时间是:" + now);
}
}
大数字的处理
BigInteger类:用来处理大整数
BigDecimal类:用来处理大十进制数。
BigInteger类:用来表示不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger。
BigInteger 提供Math的所有相关方法,还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
BigDecimal类:用来表示不可变的、任意精度的有符号十进制数。
import java.math.BigDecimal;
public class BigDecimal1 {
public static void main(String[] args) {
BigDecimal op1 = new BigDecimal("3.14159");
BigDecimal op2 = new BigDecimal("3");
System.out.println("和=" + op1.add(op2));
System.out.println("差=" + op1.subtract(op2));
System.out.println("积=" + op1.multiply(op1));
System.out.println("商=" + op1.divide(op2,
BigDecimal.ROUND_UP));
System.out.println("负值=" + op1.negate());
System.out.println("指定精度的商="
+ op1.divide(op2, 15,BigDecimal.ROUND_UP));
}
}
总结
Math类支持各种数学运算及其它的有关运算,Math提供的方法都是静态的,通过类名直接调用。
Random提供了一系列用于产生随机数的方法。
Date、DateFormat和Calendar及GregorianCalendar提供了对日期和时间进行处理的方法。
BigInteger和BigDecimal可以处理大数字和进行高精度的运算。
对于初学者而言,掌握常用的几种API类,是非常必要的,这为我们在以后的应用过程中节省了不少的时间,不过对于所有API类我们也不需要全部学习完,因为好的程序员应懂得利用工具,可以提前通读JDK文档种大部分类及类种的方法,等到有具体的实际需求时再查阅JDK文档即可。
我是田先生,一名热爱技术、热爱生活的Java程序员。如果想要了解更多java相关知识,欢迎欢迎关注我的公众号:t-j20120622(Java后端技术栈)。另外,为大家准备了一份价值1888元java资料包,关注后回复“1888”即可~