• math

java提供了基本的 + - * / %等基本算术运算的运算符,但对于更复杂的数学运算比如:三角函数,对数运算,指数运算就无能为力了。Java提供了Math工具类来完成这些复杂的运算,Math是一个工具类,他的构造器被定义成了private,所以无法创建Math类的对象。Math所有的方法都是类方法,可以直接通过类名来调用他们。此外,Math还提供了2个属性,PI  E。这个类用的不多,这里就懒得赘述了,具体的方法自己去翻API查查就好了。



  • Random
Random专门用来生成一个伪随机数。 
import java.io.IOException;
import java.util.Random; public class Linkin
{
public static void main(String[] args) throws IOException
{
Random random = new Random();
//在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
System.out.println(random.nextInt(5));
//为了避免2个Random对象产生相同的数字序列,通常推荐使用当前时间未做Random对象的种子。
Random random1 = new Random(System.currentTimeMillis());
//多线程环境下,使用ThreadLocalRandom
ThreadLocalRandom threadLocalRandom = new ThreadLocalRandom();
//生成一个0到5的伪随机整数
int huhu = threadLocalRandom.nextInt(0,5);
} }

随机数我们知道用Random就成,但如果我们不进行封装的话,恐怕每次都要至少写2行代码才行,但commons-lang却替你封装好了,每次生成随机数,只需像如下这样调用即可:

RandomUtils.nextInt()

只需一行。

  • Bigdecimal
使用float double2种类型时,容易引起精度丢失。

双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提 供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。

构造器  描 述 



BigDecimal(int)创建一个具有参数所指定整数值的对象。 



BigDecimal(double)创建一个具有参数所指定双精度值的对象。 



BigDecimal(long)创建一个具有参数所指定长整数值的对象。 



BigDecimal(String)创建一个具有参数所指定以字符串表示的数值的对象。

方 法描 述 



add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 



subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 



multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 



divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 



toString()将BigDecimal对象的数值转换成字符串。 



doubleValue()将BigDecimal对象中的值以双精度数返回。 



floatValue()将BigDecimal对象中的值以单精度数返回。 



longValue()将BigDecimal对象中的值以长整数返回。 



intValue()将BigDecimal对象中的值以整数返回。

注意,由于一般数值类型,例如double,不能准确地代表16位有效数以上的数字,在使用BigDecimal时,应用 BigDecimal(String)构造器创建对象才有意义。另外,BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算 符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。

eg:

两个BigDecimal  类型的数据相乘:

BigDecimal   a   =   new   BigDecimal(15124); 

         BigDecimal   b   =   new   BigDecimal(15124); 

         BigDecimal   c   =   a.multiply(b);

Java常用类--数字常用类的更多相关文章

  1. 【原】Java学习笔记031 - 常用类

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...

  2. Java之Object类和常用的API

    Object类和常用的API 学习过程中的笔记,涉及到Objetc中的equals方法和toString方法,日期类Date,日历类Calendar,日期格式化类SimpleDateFormat以及基 ...

  3. java十五个常用类学习及方法举例

    <code class="language-java">import java.util.Scanner; import java.util.Properties; i ...

  4. Java常用类(一)Math类和Random类

    一.Math类 Math类中有一些常用的数学函数,比较简单,不进行详细解释,仅举例说明: 1.绝对值和取整 import java.lang.Math; public class Mat { publ ...

  5. Java(三)常用类

    @ 目录 Java常用类 一.字符串相关的类 1.String类 2.StringBuffer类 3.StringBuilder类 二.JDK8以前的日期时间API 1.java.lang.Syste ...

  6. Java(215-231)【Object类、常用API】

    1.Object类的toString方法 java.lang.Object 类 Object 是类层次结构的根(父)类. 每个类(Person,Student...)都使用 Object 作为超(父) ...

  7. 8.算法竞赛中的常用JAVA API :Calendar日期类

    8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...

  8. 常用Java API:Calendar日期类

    摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类. Calendar ...

  9. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

随机推荐

  1. 【树状数组】BZOJ3132 上帝造题的七分钟

    3132: 上帝造题的七分钟 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1004  Solved: 445[Submit][Status][Dis ...

  2. SAP HANA中的SLT简介

    在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Ext ...

  3. Redis 部署主从哨兵 C#使用,实现自动获取redis缓存 实例1

    源码示例下载链接: https://pan.baidu.com/s/1eTA63T4 密码: un96 实现目标:windows 下安装 一台master服务 一台salve redis服务器 并且哨 ...

  4. mybatis动态sql排序无效

    order by 字段,在用动态sql时会出现问题,排序无效,而且在日志里查询不到,不能发现这个错误. 通常,咱们的动态sql一般都会用#代替$,因为#可以防止sql注入问题. 但是在order by ...

  5. jdk1.8新特性 : 接口中可以有普通方法(非静态方法)和静态方法 , 颠覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,后面必须要加一句jdk1.7和1..7之前

    看到jdk某些接口中存在default方法,于是... http://shaomeng95.iteye.com/blog/998820    为什么接口只能是公有常量? public interfac ...

  6. IdentityServer(11)- 使用Hybrid Flow并添加API访问控制

    关于Hybrid Flow 和 implicit flow 我在前一篇文章使用OpenID Connect添加用户认证中提到了implicit flow,那么它们是什么呢,它和Hybrid Flow有 ...

  7. springboot开启access_log日志输出

    由于在调试时需要查看access_log日志,但是springboot默认并没有开启,因此查看了一下文档,在springboot的配置文件中添加如下设置,即可将日志输出当磁盘文件中以供查看. #日志开 ...

  8. 浅析nodeJS中的Crypto模块,包括hash算法,HMAC算法,加密算法知识,SSL协议

    node.js的crypto在0.8版本,这个模块的主要功能是加密解密. node利用 OpenSSL库(https://www.openssl.org/source/)来实现它的加密技术, 这是因为 ...

  9. js设计模式之惰性单例模式

    <html> <body> <button id="loginBtn">登录</button> </body> < ...

  10. 【JavaScript声明变量的规则】

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...