Java by API/java.lang/Object — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 20:43, 31 мая 2010
Содержание
Object: finalize()
<source lang="java">
public class MainClass {
public static void main(String[] args) throws Exception { Object f = new Object() { public void finalize() { System.out.println("Running finalize()"); } }; Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("Running Shutdown Hook"); } }); f = null; System.gc(); System.out.println("Calling System.exit()"); System.exit(0); }
}
</source>
Object: getClass()
<source lang="java">
/*
* Output:
x is object of type: Class1 y is object of type: Class2 y"s superclass is Class1
* */
class Class1 {
int a; float b;
} class Class2 extends Class1 {
double c;
} public class MainClass {
public static void main(String args[]) { Class1 x = new Class1(); Class2 y = new Class2(); Class clObj; clObj = x.getClass(); // get Class reference System.out.println("x is object of type: " + clObj.getName()); clObj = y.getClass(); // get Class reference System.out.println("y is object of type: " + clObj.getName()); clObj = clObj.getSuperclass(); System.out.println("y"s superclass is " + clObj.getName()); }
}
</source>
Object: getClass() (2)
<source lang="java">
/*
* Output:
Public Methods:
a1 a2 * */
import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class MainClass {
public static void main(String args[]) { try { MyClass a = new MyClass(); Class c = a.getClass(); System.out.println("Public Methods:"); Method methods[] = c.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { int modifiers = methods[i].getModifiers(); if (Modifier.isPublic(modifiers)) { System.out.println(" " + methods[i].getName()); } } } catch (Exception e) { System.out.println("Exception: " + e); } }
} class MyClass {
public void a1() { } public void a2() { } protected void a3() { } private void a4() { }
}
</source>
Object: hashCode()
<source lang="java">
/*
About to hashCode 2 objects.
MainClass@cf2c80 --> 13577344 java.awt.Color[r=68,g=136,b=204] --> -12285748
*/
public class MainClass {
/** Some objects to hashCode() on */ protected static Object[] data = { new MainClass(), new java.awt.Color(0x44, 0x88, 0xcc) }; public static void main(String[] args) { System.out.println("About to hashCode " + data.length + " objects."); for (int i = 0; i < data.length; i++) { System.out.println(data[i].toString() + " --> " + data[i].hashCode()); } }
}
</source>
Object: notifyAll()
<source lang="java">
/*
* Output:
Calling wait Calling notifyAll Done Done
*/
class SyncFlag {
boolean flag; synchronized void k1() { if(flag == false) { flag = true; try { System.out.println("Calling wait"); wait(); } catch(Exception e) { e.printStackTrace(); } } else { flag = false; System.out.println("Calling notifyAll"); notifyAll(); } }
} class MyThread extends Thread {
SyncFlag flag; MyThread(SyncFlag k) { this.flag = k; } public void run() { flag.k1(); System.out.println("Done"); }
} public class MainClass {
public static void main(String args[]) { SyncFlag k = new SyncFlag(); new MyThread(k).start(); new MyThread(k).start(); }
}
</source>
Object: toString()
<source lang="java">
/*
* Output: * Point[123456789,2147483647] * */
class Point {
int x, y; Point(int x, int y) { this.x = x; this.y = y; } public String toString() { return "Point[" + x + "," + y + "]"; }
} public class MainClass {
public static void main(String args[]) { Point p = new Point(123456789, 2147483647); System.out.print(p); }
}
</source>
Object: wait(long timeout)
<source lang="java">
public class Main {
public static void main(String str[]) { final Object monitor = new Object(); new Thread() { public void run() { try { synchronized (monitor) { System.out.println("10 seconds ..."); monitor.wait(10000); System.out.println("Wait over"); } } catch (Throwable t) { t.printStackTrace(); } } }.start(); }
}
</source>