P481 Math方法
利用random返回一个[2,7]之间的随机数:
因为random只能返回[0,1)之间的随机数,因此做一下处理:[(int)(a), (int) (a+Math.random()*(b-a+1))],对于Math.random()*(b-a+1),其中b-a+1,它乘上[0,1)相当于可以在[0,5)之间缩放,里面的+1是为了能够取到7(int强制截取前面的整数,所以不会超过7)
(int) (a+Math.random()*(b-a+1))就可以返回一个范围[a,b]内的随机数了
P482 Arrays排序源码解读
P483 Arrays模拟排序
P484 Arrays其他方法
P485 Arrays课堂练习
对于books数组,只要比较价格,里面属性的交换,已经封装好了,不用操心
目前看来,对compare方法重写,但是重写return返回的i1-i2还是i2-i1和从小到大还是从大到小的顺序没有直接的对应关系,还是与数组有关
代码见ArraysExceise
P486 System方法
arraycopy和copyOf()差不多,但是arraycopy比copyOf()更底层
P487 大数处理方案
这两个类进行运算,大都不能直接使用加减乘除符号,要用对应的公式
BigDecimal使用除法时,如果除不尽,会抛出异常,这个时候可以在divide方法中指定精度
原理是把数当成字符串,运算完之后再转成相应的对象