Java常用基础类库

java.lang.Math

java.math.BigDecimal

java.math.MathContext

1.java.lang.Math通过静态方法提供基本数字运算
2.如果需要精确结果,建议主要使用int以及long类型以及BigDecimal,少使用或不使用floatdoublefloatdouble类型主要是为了科学计算和工程计算而设计的,它们执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精确的快速近似计算而设计的,这两种类型不会提供精确的结果,尤其不适用于货币计算

double i = 1.03;
double j = 0.42;
// 输出:0.6100000000000001
System.out.println(i - j);
 
BigDecimal Bi = new BigDecimal("1.03");
BigDecimal Bj = new BigDecimal("0.42");
// 两个数相减
BigDecimal result = Bi.subtract(Bj);
// 输出0.61
System.out.println(result);

3.java.math.BigDecimal将每个数字都转换成
u n s c a l e d V a l u e × 1 0 − s c a l e unscaledValue × 10^{-scale} unscaledValue×10scale
如:1.03表示成
103 × 1 0 − 2 103×10^{-2} 103×102
使用BigDecimal计算后的四舍五入可以使用java.math.MathContext默认的方案(java.math.RoundingMode.HALF_UP ,舍入模式:向“最近的邻居”舍入,除非两个邻居都是等距的,在这种情况下,向上取整。)或传入自己定制的MathContext

MathContext​(int setPrecision, RoundingMode setRoundingMode)

其中Precision是指指定的精度,即保留多少位数;
RoundingMode指舍入模式,由java.math.RoundingMode指定

BigDecimal Bi = new BigDecimal("11.03");
BigDecimal Bj = new BigDecimal("0.42");
// 使用默认的舍入方式,两个数相减
BigDecimal result = Bi.subtract(Bj);
// 输出10.61
System.out.println(result);

// 定制一个舍入模式,结果保留两位,使用UP模式,即只要小数点后的部分大于零,就进位
MathContext mc = new MathContext(2, RoundingMode.UP);
result = Bi.subtract(Bj, mc);
// 输出11
System.out.println(result);

java.lang.String

java.lang.StringBuffer

java.lang.StringBuilder

1.三者的区别
(1)字符串String是常量,它们的值创建后无法更改,因此字符串的拼接会通过复制产生多个String对象;
(2)StringBuffer是线程安全的可变字符序列;
(3)StringBuilder是可变的字符序列,但是不保证同步,因此在处理速度上比StringBuffer

java.lang.Thread

java.lang.ThreadLocal

java.lang.Class

java.lang.ClassLoader

java.util.Local

java.util.ResourceBundle

java.text.MessageFormat

java.util.Date

java.util.Calendar

java.text.DateFormat

java.text.SimpleDateFormat

java.util.Arrays

java.util.regex.Pattern

java.util.logging

com.alibaba.fastjson

javax.xml

org.mockito.Mockito

java.util.regex.Pattern

java.sql.Connection

java.sql.Driver

java.sql.DriverManager

java.sql.ResultSet

java.sql.ResultSetMetaData

java.sql.Statement

java.util.Collection

java.util.Collections

java.util.List

java.util.Map<K,V>

java.util.Set

java.util.ArrayList

java.util.HashMap<K,V>

java.util.LinkedList

java.io

java.nio

java.nio.channel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值