基础类库
系统相关:
System类:System类代表当前java程序的运行平台,程序不能创建System类的对象,通过System类直接调用它的变量和方法。System类提供了标准输入,标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量,系统属性,还提供了加载文件和动态链接库的方法。
Runtime类:Runtime类代表java程序运行时环境,每个java程序都有一个与之对应的Runtime实例,应用程序通过该对象与运行时环境连接,应用程序不能自己创建Runtime实例,但可以通过getRuntime()获取与之关联的Runtime对象。
常用类:
Object类:所有类,数组,枚举类的父类。
java7新增Objects工具类:Objects类的方法大多是“空指针安全”,即不会报NullPointException异常,只会返回“null”字符串
String,StringBuffer和StringBuilder类:java提供两种方式封装字符串,String和StringBuffer。
String类是不可变类,即String对象不可更改
StringBuffer对象代表一个可变的字符串,提供append(),inset(),reverse(),setCharAt(),setLength()等方法来改变这个字符串,通过toString()方法转换为String对象
StringBuilder和StringBuffer基本类似,两者构造器和方法也基本相同,不同的是,StringBuffer是线程安全,StringBuilder不是线程安全
Math类:除了一堆静态方法,还提供两个类变量PI和E
ThreadLocalRandom和Random:
Random类用于生成伪随机数,有两个构造器,一个使用默认的种子(当前时间),一个要传入long型整数作为种子
ThreadLocalRandom是Random类的增强版,在并发情况下,使用ThreadLocalRandom类来代替Random可以减少多线程资源竞争,保证系统具有更好的线程安全性。用法基本类似,但他提供了静态的current()方法来获取ThreadLocalRandom对象,获得对象后可以调用各种nextxxx()方法来获取伪随机数。
Random和ThreadLocalRandom都比Math的random()提供了更多的方式来生成随机数
BigDecimal类:
大多数语言都有精度丢失问题:0.05+0.01 = 0.060000000000005
java提供BigDecimal解决这个问题:BigDecimal a = new BigDecimal("0.05");BigDecimal b = new BigDecimal("0.01"); a+b == 0.06
使用string作为BigDecimal构造器参数,不使用Double,使用Double会出现未知问题,还会精度丢失