java Object下的finalize()、hashCode()方法 旧城等待, 2022-10-05 05:54 104阅读 0赞 ### finalzie() ### **该方法只作为了解,因为新版本(JDK13以上)finalize()方法已经被废弃了! 源码** // 在Object类中的源码如下: protected void finalize throws Throwable() (1)finalize()方法只有一个方法,里边没有代码,而且这个方法是被 protected修饰的; (2)这个方法不需要程序员手动调用,JVM垃圾回收器会负责自动调用这个方法,不像equals()或者toString()一样,需要你写代码自己调用,finalize()方法只需要重写,重新给完将来自动会有程序(GC垃圾回收器)来调用; (3)finalize() 方法的执行时机: 当一个java对象即将被垃圾回收器收回的时候,垃圾回收期负责调用finalize() 方法; (4)finalize()方法实际上是SUN公司为java程序员准备的一个时机,垃圾销毁的时机,如果希望在对象销毁时,执行一段代码的话,那么可以把这段代码写在finalize() 方法中。 (5)java中的垃圾回收器,不会轻易启动,如果垃圾太少,不会启动! ### hashcode( ) ### hashCode() 方法返回的是哈希码,实际上就是一个java对象的内存地址,经过哈希算法,得出一个值,所以hashCode()方法的执行结果可以等同看做一个java对象的内存地址。 public class Test01 { public static void main(String[] args) { int[] arr = { 1, 2, 4 }; int hashValue = arr.hashCode(); System.out.println(arr.hashValue); // 925858445 } }
还没有评论,来说两句吧...