1 多态
属性看编译类型 不会被"重写"(属性没有重写一说)
而方法看运行类型,会被重写
instanceOf 比较操作符
用于判断对象的运行类型是否为xx类型或xx的子类型
2 java的动态绑定机制
当调用对象方法时,该方法会和该对象的内存/运行类型绑定
当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
3 object类详解
Equals方法 和 ==对比
== 既可以判断基本类型(判断值是否相等)
又可以判断引用类型(判断地址是否相等)
equals只能判断引用类型 即地址是否相等
查看源码 -> 右键 -> goto -> ctrl + b
4 hashcode方法
将对象的内部地址转换成一个整数 但java不需要这种实现技巧
提高具有哈希结构的容器的效率
两个引用,如果指向的是同一个对象,哈希值一样
哈希值主要根据地址号来,不能完全将哈希值等价于地址
5 toString方法
返回该对象的字符串表示
默认返回 全类名(包名+类名) + @ + 哈希值的16进制
子类往往重写,用于返回对象的属性
直接输出一个对象时,toString对象会被自动调用
6 finalize方法
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
自动调用,也可以通过System.gc()主动触发回收垃圾机制