Java常用类库:Class Math

Java常用类库

1、Class Math

1.1、Math类的介绍

  Math类所继承的父类是Object类,该类所属的包为:java.lang.Math。使用该类中的方法主要能实现基本数学运算,比如:比较大小、取绝对值、取相反数、三角函数等等。

1.2、Math类的方法

1.2.1、abs方法

  该方法执行后的返回值的类型和你使用方法时传入的参数的类型时一致的,而该方法使用时需要传入一个参数,参数的类型可以是这四种:int类型、double类型、float类型和long类型。该方法的作用是:计算得出你传入的参数的绝对值,所以使用该方法后返回的就是你传入参数的绝对值,类型与参数一致。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		float b = -2.3f;
		double c = 6;
		long e = -0L;
		System.out.println(Math.abs(a));
		System.out.println(Math.abs(b));
		System.out.println(Math.abs(c));
		System.out.println(Math.abs(e));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

  由效果图和代码定义段可以看出来,我上述的四种类型都是可以使用abs方法来获得绝对值的,当然还有需要大家注意的是:当你从传入的参数为该类型的最小值,返回的结果的这个最小值,也就是最小的负数。

1.2.2、max方法和min方法

  max方法和min方法放在一块说明是因为这两个方法都是用来比较传入参数的大小,max方法和min方法的返回值的类型也与你传入的参数的类型一致,可以传入两个类型一样的参数,参数类型也是四种:int类型、long类型、float类型和double类型。不一样的是max方法的返回值是两个参数中较大的值,而min方法返回的是两个参数中较小的值,当然如果两个参数一样大,那相同的值便是两个方法的返回值。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		int a1 = 1;
		float b = -2.3f;
		float b1 = 1.2f;
		double c = 6;
		double c1 = 6;
		long d = 20L;
		long d1 = 60L;
		System.out.println(Math.max(a1, a));
		System.out.println(Math.max(b, b1));
		System.out.println(Math.max(c, c1));
		System.out.println(Math.max(d, d1));
		System.out.println(Math.min(a1, a));
		System.out.println(Math.min(b, b1));
		System.out.println(Math.min(c, c1));
		System.out.println(Math.min(d, d1));		
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.3、addExact方法

  该方法的返回值的类型也是和你所传入的参数的类型一致,该方法需传入两个相同类型的参数,且参数的类型只有两种:int类型和long类型,作用是将两个参数相加,方法的返回值为两个参数的和,需要注意,当两个参数的和大于了对应的参数类型的最大值,就比如:两个int类型的参数相加的值大于了int类型的最大值,那方法就会抛出 ArithmeticException 该类异常。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		int a1 = 1;
		long d = 20L;
		long d1 = 60L;
		System.out.println(Math.addExact(a1, a));
		System.out.println(Math.addExact(d, d1));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.4、subtractExact方法

  该方法的返回值的类型也是和你所传入的参数的类型一致,该方法需传入两个相同类型的参数,且参数的类型只有两种:int类型和long类型,作用是将第一个参数减去第二个参数,方法的返回值为两个参数的差,需要注意,当两个参数的差小于了对应的参数类型的最小值,就比如:两个int类型的参数相减的值小于了int类型的最小值,那方法就会抛出 ArithmeticException 该类异常。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		int a1 = 1;
		long d = 20L;
		long d1 = 60L;
		System.out.println(Math.subtractExact(a1, a));
		System.out.println(Math.subtractExact(d, d1));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.5、multiplyExact方法

  该方法的返回值的类型由你所传入的参数的所决定,该方法需传入两个参数,且参数的类型只有两种:int类型和long类型。不同于求和、求差的方法,该方法可以传入两个相同的类型的参数,返回值的类型就是参数的类型;也可以传入两个类型不一致的参数,比如:一个是int类型、另一个是long类型,那返回值的类型为long类型,作用是将第一个参数乘以第二个参数,方法的返回值为两个参数的积。

  需要注意:当两个类型相同的参数的积小于了相应的参数类型的最小值或大于了相应的参数类型的最大值,就比如:两个int类型的参数相乘小于了int类型的最小值或大于了int类型的最大值;或者是当两个参数类型不一致时,两参数的积小于了long类型的最小值或大于了long类型的最大值,那方法就会抛出 ArithmeticException 该类异常。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		int a1 = 1;
		long d = 20L;
		long d1 = 60L;
		System.out.println(Math.multiplyExact(a1, a));
		System.out.println(Math.multiplyExact(d, d1));
		System.out.println(Math.multiplyExact(a1, d1));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.6、negateExact方法

  该方法执行后的返回值的类型和你使用方法时传入的参数的类型时一致的,而该方法使用时需要传入一个参数,参数的类型可以是这两种:int类型和long类型。该方法的作用是:计算得出你传入的参数的相反数,所以使用该方法后返回的就是你传入参数的相反数,类型与参数一致,需要注意的是:当传入的参数为相应类型的最小值时,比如:你传入的参数是int类型且大小为int类型的最小值,那方法就会抛出 ArithmeticException 该类异常。

  以下是Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		long d = 20L;
		System.out.println(Math.negateExact(a));
		System.out.println(Math.negateExact(d));

	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.7、incrementExact方法

  该方法返回值类型与你传入的参数的类型一致,使用时传入一个参数,参数的类型可以有两种:int类型和long类型,作用是实现参数加1的操作,因此返回值就是你所传入参数的加1的结果。也需注意:如果结果大于相应的参数类型的最大值,那方法会抛出 ArithmeticException 该类异常。

1.2.8、decrementExact方法

  该方法返回值类型与你传入的参数的类型一致,使用时传入一个参数,参数的类型可以有两种:int类型和long类型,作用是实现参数减1的操作,因此返回值就是你所传入参数的减1的结果。也需注意:如果结果大于相应的参数类型的最大值,那方法会抛出 ArithmeticException 该类异常。

  以下是上述两种方法的Java代码:

public class test {
	public static void main(String[] args) {
		int a = -5;
		long b = 10L;
		System.out.println(Math.incrementExact(a));
		System.out.println(Math.decrementExact(b));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.9、求三角函数的方法

  Math类也是可以调用方法来求得三角函数的值,我把这些方法放在一起说明。这些方法包含了以下几种:

  • 反三角函数方法:acos​方法(求反余弦值)、asin方法(求反正弦值)​、atan​方法(求反正切值)
  • 三角函数方法:cos方法(求余弦值)、sin​方法(求正弦值)、tan​方法(求正切值)
  • 双曲三角函数方法:cosh方法(求双曲余弦值)​、sinh​方法(求双曲正弦值)、tanh​方法(求双曲正切值)

  反三角函数方法中传入的参数为double类型,返回值也是double类型,作用是:求出三角函数值对应的角度值,返回的角度在(-pi/2)到(pi/2) ,也就是说输入的参数的含义为三角函数值,返回值为角度值。注解:pi的值为圆的圆周与直径的比率。

  三角函数方法中传入的参数为为double类型,返回值也是double类型,作用是:求出角度值对应的三角函数值,也就是说输入的参数的含义为角度值,返回值为三角函数值。

  双曲三角函数方法中传入的参数为为double类型,返回值也是double类型,作用是:求出角度值对应的双曲三角函数值,返回的双曲三角函数值为((e^x)- (e^-x))/2,也就是说输入的参数的含义为角度值,返回值为双曲三角函数值。注解:e为自然对数的基数,x为你传入参数的值。

1.2.10、求基本指数和对数的方法

  Math类也是可以调用方法来求得指数和对数,我把这些方法放在一起说明。这些方法包含了以下几种:

  • 指数方法:exp方法、expm1方法
  • 对数方法:log方法、log10方法、log1p方法

  exp方法传入的是double类型的参数、返回值也是double类型,作用是:求得底数为e,指数为所传参数的值,即返回值为e^x。

   expm1方法传入的是double类型的参数、返回值也是double类型,作用是求得底数为e,指数为所传参数的值减1的值,即返回值为e^(x-1)。注解:e是自然对数的基数,x是参数的值。

  log方法传入的是double类型的参数、返回值也是double类型,作用是:求得一个对数,使得以e为底数,该对数为指数,运算后的结果为你传入的参数的值,即返回值为lnx。

  log10方法传入的是double类型的参数、返回值也是double类型,作用是:求得一个对数,使得以10为底数,该对数为指数,运算后的结果为你传入的参数的值,即返回值为log10 x。

  log1p方法传入的是double类型的参数、返回值也是double类型,作用是:求得一个对数,使得以e为底数,该对数为指数,运算后的结果为你传入的参数的值减1,即返回值为ln(x-1)。

1.2.11、round方法

  该方法有两种返回值类型:int类型和long类型,返回值的类型取决于参数的类型,当参数类型为float类型时,返回值类型为int类型;当参数类型为double类型时,返回值的类型为long类型。作用是进行小数的四舍五入。当参数为float类型时,返回值是:参数四舍五入后得到的最接近该参数的int类型的值;当参数为double类型时,返回值是:参数四舍五入后得到的最接近该参数的long类型的值。比如:参数为2.3f,调用方法后,返回值为2;或者是参数为-2.3f,调用方法后,返回值为-3。

1.2.12、random方法

  该方法返回带有正号的double值,大于或等于0.0且小于1.0 ,该方法不需要传参数,作用是:随机产生一个0.0~1.0之间的double值,所以返回值为0.0~1.0之间的数。

  

  以上就是我所总结的关于Math类和该类所使用的方法,当然Math类的方法不止我所叙述的几种,还有好多我没怎么了解的方法,感兴趣的小伙伴可以上百度自行了解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值