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. easyui的select使用

    这是一个小demo,其他相关功能查看easyuiAPI,需要注意的是valueField: 'id', textField: 'name'中id指json的key,name指json的值,id和nam ...

  2. 【HAOI2008】圆上的整点

    数学题 原题:平面上有一个圆, 圆心坐标为(0,0),半径为n. 问圆周上有多少个整点. 整点的定义即x,y坐标均为整数的点. 这根本就是一道数学题,注意是数学题,不是数论,数学! 纯粹就看魔性变公式 ...

  3. 05C++引用

    1.变量名 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号): 通过变量来申请并命名内存空间: 通过变量的名字可以使用内存空间. 2.引用的概念 变量名,本身是一段内存的引用,即别名(ali ...

  4. java数据类型之间的转换

    java的基本数据类型:short, int, long, float, double, char,string 对应的包装类型:Short, Integer, Long, Float, Double ...

  5. python 属性的访问权限,_,__,__XXX__

    1. 非私有变量,可以随意调用和修改 在class内部,有属性和方法,如下面的class Student 有name和score class Student(object): def __init__ ...

  6. python 高阶函数学习, map、reduce

    一个函数可以接收另一个函数作为参数,这样的函数叫做高阶函数. 函数map(): map()函数接收两个参数,一个是函数,一个是Iterable, map把函数作用于序列的每一个元素,并把结果作为Ite ...

  7. Bartender 使用 Excel xlsx 数据库时出现 0x800A0E7A

    Bartender 使用 Excel 数据库时出现 0x800A0E7A 这是因为没有装 数据库驱动的原因. 安装微软的驱动就可以. 注意是安装 32 位的驱动. https://www.micros ...

  8. 浅析 阿里 OceanBase 双十一 淘宝天猫 天量交易 承载能力 原理

    我们先看看 这 2 篇文章: <秘诀!支付宝支撑双十一4200万次/秒的数据库请求峰值的技术实现>  https://mp.weixin.qq.com/s?__biz=MzI3MzEzMD ...

  9. Update 20180317

    Date todo 20180317 Opencv a)         Install opencv+python+ide (http://opencv-python-tutroals.readth ...

  10. apache2 配置虚拟主机

    查看 apache2 的配置位置: whereis apache2 我的在:/etc/apache2 sites-available  文件夹下面放的就是 虚拟站点的配置文件: 随便复制一个改改: c ...