1、匿名内部类
-
没有类名的局部内部类(一切特征都与局部内部类相同)
-
必须继承一个父类或实现一个接口
-
定义类、实现类、创建对象的语法合并,只能创建一个该类的对象
-
优点:减少代码量
-
缺点:可读性差
//接口Ia
interface Ia{
void eat();
}
public class Test{
public void test(){
//匿名内部类
new Ia(){
public void eat(){
//重写内容
}
}.eat();
}
}
2、Object类
-
超类、基类,所有类的直接或间接父类,位于继承树的最顶层。
-
任何类,如果没有书写extends显式继承某个类,都是默认直接继承 Object类,否则为间接继承。
-
Object类中所定义的方法,是所有对象都具备的方法。
-
Object类型可以存储任何对象。
- 作为参数,可接受任何对象。
- 作为返回值,可返回任何对象。
-
方法:
-
getClass():
- 返回引用中储存的实际对象类型
- 应用:通常用于判断两个引用中实际储存对象类型是否一致
-
hashCode():
- 返回改对象的十六进制的哈希码值
- 哈希算法根据对象的地址或字符串或数字计算出来的int类型的数值。
- 哈希码并不唯一,可保证相同对象返回相同哈希码,尽量保证不同对象返回不同哈希码。
-
toString():
- 返回该对象的字符串表示(表现形式)
- 可以根据程序需求覆盖该方法,如:展示对象各个属性值。
-
equals():
- 默认实现为( this == obj),比较两个对象地址是否相同
- 可进行覆盖,比较两个对象的内容是否相同。
-
finalize():
- 当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记对象,进入回收队列。
- 垃圾对象:没有有效引用指向此对象时,为垃圾对象。
- 垃圾回收:由GC销毁垃圾对象,释放数据存储空间。
- 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
- 手动回收机制:使用System.gc();通知JVM执行垃圾回收。
-