您的位置:首页 > 移动开发 > Objective-C

Java类的共同父类Object之常用方法总结

2017-06-18 19:56 405 查看
Java类的共同父类为Object:

  Java.lang.Object类是所有Java类的最高层次父类,该类中没有定义任何属性,只有几个方法。

1、hashCode( )方法

   public int hashCode ( ) 返回当前对象的哈希值(哈希码可理解为系统为每一个Java对象自动创建的整型编号,而且此编号唯一)。

2、toString( )方法

 Object类中toString()方法的原始定义:

public String toString( ){
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
 当子类继承后可以重写toString()方法。

3、equals( )方法

 Object类中equals ( )的定义:

public boolean equals(Object obj){
return (this == obj);
}
 equals( )方法和“==”的异同:

 注:等价性比较的标准:

     a、基本数据类型比较的是数据的值;

     b、引用类型比较的是对象的句柄,即对象的hashCode编码或者说是引用类型变量的值,而非对象本身,也可以说永远比较的是变量的值。

    equals( ) 在比较一些特定的引用类型(java.lang.String、java.io.File、java.util.Date)数据时,允许改变先前严格的等价性标准——只要两个对象同为

    同类特定类型且内容相同(对象各自封装的属性值对应相同),即判断为等价。

     “==”不存在任何"变通"的可能。

public class TestEquals(){
public static void main(String [] args){
String s1 = new String("abcd");
String s2 = new String("abcd");
System.out.println(s1 == s2);
System.out.println(s1.ewuals(s2));
s2 = s1;
System.out.println(s1 == s2);
System.out.println(s1.ewuals(s2));
}
} 程序运行输出结果为:

 false

 true

 true

 true
4、finalize( )方法

     Java运行环境中的垃圾收集器在销毁一个对象之前,会自动调用该对象的finalize()方法,然后才释放对象的内存空间。

 在Object类中的定义:

protected void finalize( ) throws Throwable{ }
 注:a、在子类重写finalize()方法时,修饰符要修改为public,否则重写没有意义。

         b、finalize( )方法最终是否会执行,何时会执行都是不确定的,即使在应用程序中显式调用System.gc()或 Runtime.gc()方法强制系统清理无用内存,

都无法保证finalize( )方法是否执行,故开发中不建议使用此方法。

5、clone( )方法

     拷贝一个现有的对象,得到一个新对象(和现有对象拥有完全相同的属性值信息),之后二者使用互不干预。

  Object类的定义:

protected native object clone() throws cloneNotSupportException;
  注:a、子类重写clone()方法时,修饰符要修改为public。

          b、所有要进行"克隆"的对象所属的类,必须实现java.lang.Cloneable接口。

          c、Cloneable接口是空接口。

          d、有浅度拷贝、深度拷贝之分。

6、wait( )方法和notify( )方法在多线程中介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Object类