1、 ==和equals的对比:
== 是一个比较运算符:
(1)==:接可以判断基本数据类型也可以判断引用类型
(2)==:如果判断基本类型,判断的是值是否相等。
(3)==:如果判断引用类型,判断的是地址是否相等,也就是判断是否是一个对象
equals方法:
(1)equals: 是Object类中的方法,只能判断应用类型
(2)默认判断的是地址是否相等,子类中往往重写这一方法,用于判断内容是否相等,
2、hashCode 方法
(1)提高具有哈希结构的容器的效率
(2)两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!
(3)两个引用,如果指向的是不同对象,则哈希值是不一样的(一般)
(4)哈希值主要是根据地址号计算的!不能讲哈希值等价于地址
(5)集合中的hashCode,如果需要,也会重写
3、toString方法
默认返回:全类名+@+哈希值的十六进制。
子类往往重写toString方法,用于返回对象的属性信息
当直接输出一个对象时,toString方法会被默认调用
4、finalize方法(实际开发中,几乎不会使用,应付面试)
(1)对象被回收时,系统自动调用该方法的finalize方法。子类可以重写该方法,做一些释放资源的操作
(2)什么时候被回收:当某个对象没有任何引用的时候,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁对象钱,会先调用finalize方法
(3)垃圾回收机制的调用,是由系统来决定(GC算法),也可以通过System.gc()主动触发垃圾回收机制