如何阅读API文档?
1,来自于哪个包下
2,观察类的层次结构
3,观察该类时普通类还是抽象类或者是接口
普通类
看构造方法
抽象类
1,看他的子类
2,看是否在方法中有静态方法返回该类的对象
接口
1,看实现类
4,观察该类的继承了哪些类,实现了那些接口
5,自己根据需求查找构造方法,类变量,类方法,成员方法
object
class object是类object结构的根。每个班都有object作为超类。所有对象(包括数组)都实现了这个类的方法
1,任何都是用object作为超类
2,大部分系统类都重写object类的方法,自定义类没有实现,我需要根据需求重写
3,任何类都直接间接访问了object类的无参构造方法,同时加载了object类的静态代码块
4,该类的车技也是满足万事万物皆对象的设计原则
int hashCode() 重点掌握
Class ? getClass() (反射中详细讲解)
boolean equals(object obj) (重点掌握)
String toString () (重点掌握)
protected void finalize() (面试题会考,了解)
当垃圾会收取确定不存在该类对象的更多引用时,由对象的垃圾回收期调用此方法。
用于垃圾回收,但是什么时候回收不确定。
protected object clone() (了解)
hashCode()
object定义的hashCode方法确实为不同对象返回不同的整数
(这里通常通过讲对象的内部地址转换为整数来实现,但Java语音不需要此实现技术)
native关键字可以和abstract共存吗? – 不可以
1,该方法返回的是一个和地址有关的整数值,可以理解为地址,但不是地址
2,有可能两个对象的hashCode一样,但是两个对象不是同一个对象
3,如果两个 对象地址一样,肯定是同一个对象
4,hashCode方法只能够保证对象尽量唯一
Class ? getClass() (反射中详细讲解)
该方法返回的是字节码文件对象,
指类所在的全路径,可链式编程。
String toString ()
注意;
1,直接输出一个对象,默认输出是该对象的toString方法
2,返回一个对象的地址+类路径毫无意义,父类的Object的toString方法不能够满足Student需求,所以需要方法重写
重写 一般自动生成 alt + shift + s 在按 s
boolean equals(object obj)
比较基本数据类型
比较的是数值本身
比较引用数据类型
比较的是地址
equals
不能够比较基本数据类型
比较引用类型
如果你没有重写equals方法,默认比较的都是地址
equals方法比较成员是否相等要看需求
重写; alt + shift + s 在按 h
protected object clone() (了解)
java.lang.CloneNotSupportedException
异常名称;克隆不支持异常
克隆出来的对象和本体一样,但是是一个独立体,和地址传递有区别
深克隆和浅克隆【设计模式中原型模式讲解】
protected void finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由垃圾对象的回收期调用此方法。用于垃圾回收,但是什么时候回收不确定。
垃圾回收器不确定性和随机性
//启动垃圾回收器
System.gc();
//让垃圾回收器执行finalize方法,也不一定执行
System.runFinalization();