Java常用类05:BigDecimal、System类
BigDecimal类
BigDecimal类用来精确计算浮点数,使用独有的add()、subtract()、multiply()、divide()方法进行精确计算
import java.math.BigDecimal;
public class Hello {
public static void main(String[] args) {
BigDecimal n1 = new BigDecimal("1.0"); //使用BigDecimal类必须创建对象,且必须输入字符串形式的数字,因为数字本身就不精确
BigDecimal n2 = new BigDecimal("0.9");
System.out.println(n1.add(n2)); //不能使用基本运算符
System.out.println(n1.subtract(n2));
System.out.println(n1.multiply(n2));
System.out.println(n1.divide(n2, 2, BigDecimal.ROUND_HALF_UP)); //除法需指定保留的小数位数和模式,ROUND_HALF_UP表示四舍五入
double d = n1.doubleValue(); //doubleValue()等方法将BigDecimal对象转换为基础数值类型
}
}
System类
主要用于获取系统的属性数据和其它操作,其方法是静态的,因此可以直接调用
常用的就是打印当前时间:System.currentTimeMillis()
import java.util.Arrays;
public class Hello {
public static void main(String[] args) {
int[] s1 = {1, 2, 3, 4, 5, 6, 7, 8};
int[] s2 = new int[8];
System.arraycopy(s1, 4, s2, 4, 4); //System.arraycopy()方法复制数组,参数分别为原数组,复制开始位置,目标数组,粘贴开始位置,复制长度。注意,System.arraycopy()只改变原数组目标范围内的元素而保持其他位置不变,例如归并排序的merge()方法中公用同一个数组副本,每次只改变某一个[left, right]区间的值;而Arrays.copyOf()方法不能做到这一点,它返回一个只包含目标范围的数组,如果长度大于原数组用0补充,它适合目标数组不明确的情况
System.out.println(Arrays.toString(s2));
System.out.println(System.currentTimeMillis()); //System.currentTimeMillis()方法,打印当前距离1970.1.1零点过去的毫秒数
System.exit(0); //System.exit()方法退出程序
System.out.println("程序没有退出"); //exit()以后的代码不会再执行
}
}