JAVA_基础类库

118 阅读2分钟

ch07_基础类库

参考学习源码:github源码_基础类库

1、Scanner不仅能读取用户的键盘输入,还可以读取文件输入;

2、System 类来访问操作的环境变量和系统属性;

3、Runtime 类可以通知系统进行垃圾回收、清理系统资源,并提供load(String filename)和loadLibrary(String libname)方法来加载文件和动态链接库,可以访问JVM的相关信息,如处理器数量内存信息等。

4、Objects类提供的toString(Object o)方法,就不会引发空指针异常,当o为null时,程序返回一个"null"字符串。

5、Math类几乎覆盖了所有的数学计算功能;

6、Random类用来生成一个伪随机数,Java7 新增ThreadLocalRandom类,是Random的增强版。在并发环境,可以减少线程资源的竞争,最终保证系统具有更好的线程安全性。
只要两个Random对象的种子相同,而且方法的调用顺序也相同,就会产生相同的数字序列,也就是说,Random产生的数字并不是真正随机的,而是一种伪随机。推荐使用当前时间作为Random对象的种子。

7、BigDecimal类的BigDecimal(double val)构造器,不推荐使用,使用该构造器有一定的不可预知性,建议使用基于String的构造器或通过BigDecimal.valueOf(double value)静态方法来创建BigDecimal对象。

8、Java官方推荐使用Calendar工具类,尽量少用Date的构造器和方法。

9、Pattern是不可变类,可供多个并发线程安全使用。

10、国际化可以称为I18N,本地化称为L10N。

11、国际化:

  • java.util.ResourceBundle:用于加载国家、语言资源包;
  • java.util.Locale:用于封装特定的国家\区域、语言环境;
  • java.text.MessageFormat:用于格式化带占位符的字符串。

12、DateTimeFormatter的功能完全覆盖了传统的DateFormat、SimpleDateFormate的功能。