常用API
Java提供已经写好的类和方法。
Object 类
Objects 类
Objects 类与 Object 还是继承关系, Objects类是从JDK1.7开始之后才有的。
Objects 的 equals 函数源码。
Math类
向上取整、向下取整没有四舍五入。 向上取整(ceil
),有小数就加一。向下取整(floor
),去掉小数。只有round
有四舍五入。
random
无限接近于1但不会是1,且无法指定随机范围。
System类
可以通过currentTimeMillis
方法来判断代码运行耗时。
long start = System.currentTimeMillis();
运行代码
long end = System.currentTimeMillis();
System.out.println(end-start);
BigDecimal类
小数运算中存在不精确的问题。
double num1 = 0.1;
double num2 = 0.2;
System.out.println(num1+num2);
输出0.30000000000000004
第一种创建对象的方式不能解决小数运算不精确的问题。
BigDecimal num1 = new BigDecimal("0.1");
BigDecimal num2 = new BigDecimal("0.2");
System.out.println("第二种"+num1.add(num2));
BigDecimal num3 = BigDecimal.valueOf(0.1);
BigDecimal num4 = BigDecimal.valueOf(0.2);
System.out.println("第三种"+num3.add(num4));
BigDecimal num5 = BigDecimal.valueOf(0.1);
BigDecimal num6 = BigDecimal.valueOf(0.2);
System.out.println("第一种"+num5.add(num6));
输出:
第二种0.3
第三种0.3
第一种0.3
如果你希望将结果转成基础数据类型,可以使用doubleValue
方法。
BigDecimal num1 = new BigDecimal("0.1");
BigDecimal num2 = new BigDecimal("0.2");
BigDecimal num3 = num1.add(num2);
double num = num3.doubleValue();
System.out.println(num);
包装类
将基本数据类型,包装成类(变成引用数据类型)
手动包装成类用装箱
表示。
// 装箱
Integer i = new Integer(1);
Integer i2 = Integer.valueOf(2);
// 拆箱
int i3 = i.intValue();
int i4 = i2.intValue();
自动装箱其实是使用了Integer.valueOf
Integer i = 1;
Integer i2 = 2;
int i3 = i;
int i4 = i2;
Arrays工具类
二分查找必须保证数组中的元素是排好序的。
与正则相关方法