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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页