廖雪峰Java2面向对象编程-6Java核心类-6常用工具类
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));

总结
- Math:数学运算
- Random:生成伪随机数
- SecureRandom:生成安全的随机数
- BigInteger:表示任意大小的证书
- BigDecimal:表示任意精度的浮点数
- BigInteger和BigDecimal都继承自Number
更多参考菜鸟(http://www.runoob.com/java/java-number.html){http://www.runoob.com/java/java-number.html}
廖雪峰Java2面向对象编程-6Java核心类-6常用工具类的更多相关文章
- 廖雪峰Java2面向对象编程-6Java核心类-3包装类型
Java的数据类型: 基本类型:int boolean float 引用类型:所有class类型 为一个基本类型int赋值为null,会提示"incompatible types" ...
- 廖雪峰Java2面向对象编程-6Java核心类-2StringBuilder
字符串操作过程中,每次用 + 拼接字符串,有以下问题: 每次循环都会创建新的对象 绝大部分都是临时对象.浪费内存 影响GC效率 String s = ""; for(int i=0 ...
- 廖雪峰Java2面向对象编程-6Java核心类-1字符串和编码
Java的字符串用String表示 1.String特点: 可以直接使用"..."表示一个字符串,不强制使用new String 内容不可变 String s1 = "h ...
- 廖雪峰Java2面向对象编程-6Java核心类-5枚举类
直接定义常量 public class Weekday { //定义int常量 public static final int SUN = 0; public static final int MON ...
- 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean
1.JavaBean定义 符合以下命名规范的class被成为JavaBean private 类型的field 针对这个field的get和set方法 public class Person { pr ...
- 廖雪峰Java2面向对象编程-3继承和多态-1继承
1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...
- 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...
- 廖雪峰Java2面向对象编程-5包和classpath-3作用域
1.访问权限 Java的类.接口.字段和方法都可以设置访问权限 访问权限是指在一个类的内部,能否引用另一个类以及访问它的字段和方法 访问权限有public.protected.private和pack ...
- 廖雪峰Java2面向对象编程-5包和classpath-1包package
1.package的意义 如下,存在多个相同类名的文件.当引用Person类,将无法确定引用小红,还是小明的Person类,即同名类的冲突. 小明的Person类:Person 小红的Person类: ...
随机推荐
- this语句的知识点第五点
对不起大家久等了 最后一点 第五点 给元素中的某一个事件绑定方法,当事件触发时,执行绑定的方法,方法中的this指向当前元素. funciton fn(){ console.log(this) } d ...
- Python学习之---Python中的内置函数(方法)(更新中。。。)
add(item) #将item添加到s中,如果item已经在s中,则无任何效果 break #退出循环,不会再运行循环中余下的代码 bool() #将参数转换为布尔型 by ...
- python------模块定义、导入、优化 ------->hashlib模块
一.hashlib模块 用于加密相关的操作,3.x版本里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. (MD5消息摘要算法(英语 ...
- window.location.herf=url参数有中文,到后台乱码问题解决
js中的代码: /*将中文的参数进行两次编码 */ function queryByName(){ //获取查询条件的用户名 ...
- idea新建工程项目结构
一:新建项目 File--->new---->project--->Empt Project(空项目)--->next--->java_web--->Finish ...
- 利用反射C#获取事件列表
在程序设计中有时候需要动态订阅客户自己的事件,调用完成后又要删除以前订阅的事件.因为如果不删除,有时会造成事件是会重复订阅,导致程序运行异常.一个办法是用反射来控件事件列表.清空方法代码如下: /// ...
- git和gulp使用
git push origin master/chunxiong git remote -v git merge chunxiong working tree:就是你所工作在的目录,每当你在代码中进行 ...
- 我发起了一个 .Net 平台上的 直播平台 开源项目 BalaBala
直播平台, 需要解决的 技术点 是 2 个: 1 直播数据 的 传输 和 在 客户端 的 播放 2 大并发 关于 网络通信, 数据传输, 可以参考 <利用 MessageRPC 和 Shar ...
- webpack 相关插件及作用(表格)
webpack 相关插件及作用: table th:first-of-type { width: 200px; } table th:nth-of-type(2) { width: 140px; } ...
- TypeScript 之 基础类型、高级类型
基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...