1.Math

Math提供了数学计算的静态方法

序号 方法 描述
1 abs() 返回参数的绝对值。Math.abs(-9)//9
2 ceil() 返回大于等于( >= )给定参数的的最小整数。Math.ceil(4.5)//5.0
3 floor() 返回小于等于(<=)给定参数的最大整数 。ath.floor(4.5)//4.0
4 rint() 以0.5为界返回与参数最接近的整数。返回类型为double。Math.rint(4.5)//4.0 Math.rint(4.51)//5.0
5 round() 它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。
6 min() 返回两个参数中的最小值。Math.min(1,3)//1
7 max() 返回两个参数中的最大值。Math.max(1.3,6)//6
8 exp() 返回自然数底数e的参数次方。Math.exp(1)//2.718281828459045
9 log() 返回参数的自然数为底数的对数值。Math.log(2.718281828459045)//1.0; Math.log10(10) //1.0 返回参数以10为底数的对数值。
10 pow() 返回第一个参数的第二个参数次方。Math.pow(2,10)//1024
11 sqrt() 求参数的算术平方根。Math.sqrt(2)//1.4142135623730951
12 sin() 求指定double类型参数的正弦值。90度角的正弦值Math.sin(Math.PI/2)//1.0
13 cos() 求指定double类型参数的余弦值。0度角的余弦值:Math.cos(0)//1.0
14 tan() 求指定double类型参数的正切值。45度角的正弦值:Math.tan(Math.PI/4)//0.9999999999999999
15 asin() 求指定double类型参数的反正弦值。0.5的反正弦值是30度Math.toDegrees(Math.asin(0.5))
16 acos() 求指定double类型参数的反余弦值。0.5的反余弦值是60度Math.toDegrees(Math.acos(0.5))
17 atan() 求指定double类型参数的反正切值。1的反正切值是45度Math.toDegrees(Math.atan(1))
18 atan2() 将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
19 toDegrees() 将参数转化为角度。
20 toRadians() 将角度转换为弧度。Math.toRadians(45)/Math.PI//0.25PI
21 PI Math.PI
22 E Math.E 自然数2.718281828459045

2.random() 随机数

Math.random()生成一个随机数:

  • 0 <= 随机数< 1
  • 可用于生成某个区间的随机数
 double x1 = Math.random();
long MIN = 1000;
long MAX = 9000;
double x2 = Math.random() * (MAX - MIN) + MIN;
System.out.println(x1+"\t"+(long) x2);


## 2.1伪随机数
* 伪随机数是给定种子后伪随机数算法生成完全相同的序列
* 不给定种子时Random使用系统当前时间作为种子
* nextInt(N)生成不大于N的随机数
* nextInt/nextLong/nextDouble/nextFloat
```#java
//生成随机数
Random r = new Random();
System.out.println(r.nextInt());
System.out.println(r.nextLong());
System.out.println(r.nextFloat());
System.out.println(r.nextDouble());
```

        //根据种子号码,生成固定序列的随机数
System.out.println("Hello java");//Hello world
Random r = new Random(12345);
for(int i = 0;i<10;i++){
System.out.print(r.nextInt(100)+"\t");
}


3.安全随机数

SecureRandom用来创建安全的随机数

SecureRandom sr = new SecureRandom();
for(int i = 0;i < 10;i++){
System.out.print(sr.nextInt(100)+"\t");
}

4.BigInteger

用任意多个int[] 来表示非常大的整数

BigInteger bi = new BigInteger("1234567890");
System.out.println(bi.pow(5));

5.Bigdecimal表示任意精度的浮点数

BigDecimal bd = new BigDecimal("123.10");
System.out.println(bd.multiply(bd));

总结

廖雪峰Java2面向对象编程-6Java核心类-6常用工具类的更多相关文章

  1. 廖雪峰Java2面向对象编程-6Java核心类-3包装类型

    Java的数据类型: 基本类型:int boolean float 引用类型:所有class类型 为一个基本类型int赋值为null,会提示"incompatible types" ...

  2. 廖雪峰Java2面向对象编程-6Java核心类-2StringBuilder

    字符串操作过程中,每次用 + 拼接字符串,有以下问题: 每次循环都会创建新的对象 绝大部分都是临时对象.浪费内存 影响GC效率 String s = ""; for(int i=0 ...

  3. 廖雪峰Java2面向对象编程-6Java核心类-1字符串和编码

    Java的字符串用String表示 1.String特点: 可以直接使用"..."表示一个字符串,不强制使用new String 内容不可变 String s1 = "h ...

  4. 廖雪峰Java2面向对象编程-6Java核心类-5枚举类

    直接定义常量 public class Weekday { //定义int常量 public static final int SUN = 0; public static final int MON ...

  5. 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean

    1.JavaBean定义 符合以下命名规范的class被成为JavaBean private 类型的field 针对这个field的get和set方法 public class Person { pr ...

  6. 廖雪峰Java2面向对象编程-3继承和多态-1继承

    1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...

  7. 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础

    1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...

  8. 廖雪峰Java2面向对象编程-5包和classpath-3作用域

    1.访问权限 Java的类.接口.字段和方法都可以设置访问权限 访问权限是指在一个类的内部,能否引用另一个类以及访问它的字段和方法 访问权限有public.protected.private和pack ...

  9. 廖雪峰Java2面向对象编程-5包和classpath-1包package

    1.package的意义 如下,存在多个相同类名的文件.当引用Person类,将无法确定引用小红,还是小明的Person类,即同名类的冲突. 小明的Person类:Person 小红的Person类: ...

随机推荐

  1. UE4 C++ Tips

    篇写的是关于UE4的C++方面的小技巧: 1.在构造函数里 //构建组件 RootComponent = CreateDefaultSubobject<USceneComponent>(T ...

  2. 查看win电脑支持的最大内存?

    wmic memphysical get maxcapacity 67108864 大约64G

  3. 数字int字符串str(深入学习)

    数字int字符串str 查看一个对象的类 如:如查看对象变量a是什么类          用到函数type(),函数值是要查看的对象变量 1 #!/usr/bin/env python 2 # -*- ...

  4. hdu3746 Cyclic Nacklace KMP

    CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, ...

  5. java 调用process

    java调用process 有两种实现方法,一是使用Runtime类,二是使用Process类. 我在最近的项目里用的是Runtime类,接下来写下总结. 有图有真相(在网上学来一句话) packag ...

  6. 下载B站、秒拍等视频网站视频

    需要一个FVD Downloader(插件) 安装过程很简单,会浏览器安装插件的就不多说了!

  7. SecureCRT突然卡死的问题

    SecureCRT作为著名的SSHclient,经经常使用于登陆远程server. 在上面编辑文本,特别是用vi打开两个文本,而且须要切换时.非常easy出现卡死的现象,不能接受不论什么的键盘输入. ...

  8. Oracle12C版本安装步骤

    一.下载路径 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html file1,file ...

  9. Redis 可视化界面工具:Fastoredis

    下载地址:https://sourceforge.net/projects/fastoredis/

  10. docker 的前台模式和后台模式

    Detached(后台模式) vs foreground(前台模式) 当我们启动一个容器时,首先需要确定这个容器是运行在前台还是运行在后台. -d, --detach Run container in ...