1.java类都是Object类的子类,所有任何Java对象都可以调用Object类的方法。
Object类提供如下常用的方法。boolean equals(Object obj):判断指定对象与该对象是否相等,此处相等时标准的两个对象同一个对象;protected void finalize():当系统中没有变量引用该对象时,垃圾回收器调用此方法来清理该对象的资源。ClassgetClass():返回该对象的运行时类。int hashCode():返回该对象的hashCode值。String toString():返回该对象的字符串表示。Object类的wait()、notify()、notifyAll()几个方法,这几个方法可以控制线程的暂停和运行。Object类提供的clone()方法使用了protected修饰,因此该方法只能被子类重写或者调用。Object类的clone()方法虽然简单、易用,但它只是一种“浅克隆”,他只克隆该对象的所有变量成员值,但不会对引用类型的成员变量值所引用的对象进行克隆。
2.Objects工具类,它提供了一些工具方法和操作对象,这些工具方法大多是“空指针”安全的。比如说你不能确定一个引用类型是否为null,如果贸然地调用该变量的toString()方法,则会可能引发NullpointerExcetpion异常,但如果使用Objects类提供的toString(Object o)方法,就不引起空指针异常。java为工具类的命名习惯是添加一个字母s,比如说数组的Arrays,集合的工具类Collections类。
3.字符串是一连串的字符序列,java提供了String和StringBuffer两个类来封装字符串。并提供了一系列方法来操作字符串对象。String类是不可变类,StringBuffer对象则代表一个字符序列可变的字符串,可以通过StringBuffer提供的append()、insert()、reserse()、setCharAt()、setLength()等方法可以改变这个字符串对象的序列化,一旦StringBuffer生成最终想要的字符串,就可以调用它的toString()方法将其转化为一个String对象。而jdk1.5又新增一个StringBuilder类,它代表字符串对象,和StringBuffer基本相似,两个类的构造器和方法基本相同,不同的时StringBuffer是线程安全的,StringBuilder是没有线程安全的,所以性能略高,通常我们优先考虑StringBuilder类。String 、StringBuilder、StringBuffer都实现了ChatSequence接口,因此ChatSequence可认为是一个字符串协议接口。String类中一些常用方法String toUpperCase();将字符串转换成大写、String toLowerCase(); char[] toCharArray();将String对象转换成char数组 String substring(int beginIndex,int endIndex):获取从beginindex位置开始到endindex位置的字符串,string substring(int beginIndex):获取从beginIndex位置开始到结束的字符串。String indexOf(int ch):找去ch字符在该字符串中第一次出现的位置。String concat(String str):将该String对象与str连接在一起,与java中提供的字符串+功能相似。
4.java提供的Math工具类来完成一些复杂的运算,Math类是一个工具类,他的构造函数被定义成private的,因此无法创建Math类的对象;Math类中所有的方法都是类方法,可以直接用类名来调用他们的方法,还提供了两个类变量PI和E,正如他们名字分别为π和e。
5.Random类专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子(以当前时间为种子),另一个构造器需要程序员显示传入一个long型整数的种子。ThreadLocalRandom类是java7新增的一个类,它是Random 的增强版。在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程资源竞争,最终保证系统具有更好的线程的安全性。
6. Java提供了BigDecimal类,该类提供了大量的改造器用于创建一个BigDecimal对象,包括把所有的基本数值型变量转换成一个BigDecimal对象,也包括利用数字符串、数字字符串数组来创建BigDecimal对象,来提供精确的表示,计算浮点数。