Clase Object

La clase Object es la clase raíz de todo el árbol de la jerarquía de clases Java, y proporciona un cierto número de métodos de utilidad general que pueden utilizar todos los objetos.

Los métodos de la clase Object en Java

Los métodos públicos y protegidos de la clase Object son:

-public boolean equals(Object obj): compara si dos objetos son iguales, por defecto un objeto es igual solamente a si mismo.

if (uno.equals(otroUno))
    System.out.println("Los objetos son Iguales");

-public int hashCode(): Devuelve un valor de código hash para el objeto. Este método se apoya en beneficio de tablas hash tales como los proporcionados por java.util.Hashtable.

 
public static void main(String[] args) {
Demo demoA = new Demo(20);
Demo demoB = new Demo(20);
 
System.out.println(demoA.equals(demoB));
System.out.println(demoA.hashCode());
System.out.println(demoB.hashCode());
}

-protected Object clone() throws CloneNotSuportedException: devuelve una copia binaria del objeto, al parecer al hacer la copia hace referencia a una nueva posición de memoria.

import java.util.GregorianCalendar;

public class ObjectDemo {

   public static void main(String[] args) {

      // create a gregorian calendar, which is an object
      GregorianCalendar cal = new GregorianCalendar();

      // clone object cal into object y
      GregorianCalendar y = (GregorianCalendar) cal.clone();

      // print both cal and y
      System.out.println("" + cal.getTime());
      System.out.println("" + y.getTime());


   }
}

-public final Class getClass(): devuelve el objeto del tipo Class que representa dicha clase durante la ejecución, es decir devuelve el tipo de clase al que pertenece.

void PrintClassName(Object obj) {
    System.out.println("La clase del Objeto es " +
		obj.getClass().getName());
}

-protected void finalize() throws Throwable: se usa para finalizar el objeto, es decir, se avisa al administrador de la memoria que ya no se usa dicho objeto, y se puede ejecutar código especial antes de que se libere la memoria.

public class ObjectDemo extends GregorianCalendar {

   public static void main(String[] args) {
      try {
         // create a new ObjectDemo object
         ObjectDemo cal = new ObjectDemo();

         // print current time
         System.out.println("" + cal.getTime());

         // finalize cal
         System.out.println("Finalizing...");
         cal.finalize();
         System.out.println("Finalized.");

      } catch (Throwable ex) {
         ex.printStackTrace();
      }


   }
}

-public String toString():devuelvo una cadena describiendo el objeto.

System.out.println(Thread.currentThread().toString());
System.out.println(new Integer(44).toString());

las dos líneas anteriores darían la siguiente salida. Thread[main,5,main]

-void nativa public final notify(): Se despierta un solo hilo que está esperando en el monitor de este objeto. Un subproceso espera en el monitor de un objeto llamando a uno de los de espera métodos.

import java.lang.reflect.*;

public class ClassDemo {

   public static void main(String[] args) {

     // class object associated with class Long
     Class cls = Long.class;

     Method[] m = cls.getMethods();
     for(int i = 0; i < m.length; i++) {
        // returns te declaring class
        Class dec = m[i].getDeclaringClass();
        // displays all methods
        System.out.println("Method = " + m[i].toString());
        System.out.println(" Declaring class: " + dec.toString());
     }
   }
}

-final public void wait (): Espera que se le notifique por otro subproceso de un cambio en este objeto.

public class ThreadA {
	public static void main(String[] args) {
		ThreadB b = new ThreadB();
		b.start();
 
		System.out.println("Total is: " + b.total);
 
	}
}
 
class ThreadB extends Thread {
	int total;
 
	@Override
	public void run() {
		for (int i = 0; i < 100; i++) {
			total += i;
		}
	}
} 
http://java-white-box.blogspot.com.es/2013/12/javaplayer-la-clase-object-en-java-los.html

http://dis.um.es/~bmoros/Tutorial/parte5/cap5-10.html
http://www.javahispano.org/certificacion/2011/9/28/genericos-y-colecciones-parte-1-sobreescribiendo-equals-y-ha.html
http://www.tutorialspoint.com/java/lang/object_clone.htm
http://www.tutorialspoint.com/java/lang/object_finalize.htm