BigInteger
大整数
- New BigInteger(String val)
- New BigInteger(numbits,随机数---获取一个随机的2^numbits-1 范围内的数字
- New BigInteger(String val,进制)
静态的BigInteger.valueOf(long val)内部有优化
首先,静态的能获取的数字范围小,不能超出long范围
其次,静态的提前创建了(-16,16)的对象,如果多次使用不会创建新的
BigInteger b1 = BigInteger.valueOf(16)
BigInteger b2 = BigInteger.valueOf(16)
b1 == b2 --true
BigInteger b3 = BigInteger.valueOf(17)
BigInteger b4 = BigInteger.valueOf(17)
b3 == b4 -- false
对象一旦创建,内部数据不会发生改变
比如说两个BitInteger对象相加,会创建一个新的对象存储计算结果,参与计算的两个对象数据不变
BigDecimal
可以通过double创建,但是不准确
BigDecimal bd = new BigDecimal(0.01)
也可以通过传递字符串的方式创建,这个准确
BigDecimal bd = new BigDecimal(“0.01”)
通过静态方法获取对象
BigDecimal bd = BigDecimal.valueOf(10.0)
如果要表示的数字不大,就用静态方法,静态方法里面有创建好的0-10之间的整数
Divider: rounding mode--half up四舍五入
BigDecimal底层存储:使用ACSII码存储,比如说“0.226” ---[48,46,50,50,54]如果有负数,也要存储负号
正则表达式
如果要存储符合条件的数据,那么最好排除一些异常数据(逐个if return false),剩余就是符合条件的
方括号表示的,只表示一个字符
[abc]
[^abc]---非
[a-zA-Z]---或者 或者也可以用|
[a-d[m-p]]----或者
[a-z&&[def]]----并且
预定义字符(也只匹配一个字符)
一个点可以表示一个任何字符
\d表示0-9之间的一个数字
\D表示非数字
\w表示英文,数字和下划线
数量词--紧跟着前面一个X使用,这个X可以是方括号表示的,也可以是预定义字符
可以把正则表达式分成1组,这一组用小括号括起来,然后接着写一个{2,3},表示这一组可以出现两到三次
最后一个小tips:java中每个\前面需要加一个\转义,因此结果是:两个\\表示一个\,尤其是文件目录要注意。