0基础学习Java ——Object 对象(下)
本帖最后由 回忆一遥远 于 2017-8-16 09:51 编辑Object 对象
Java 中所有的类都直接或间接继承 Object ,因此都有如下方法
getClass();
hashCode();
equals(Object obj);
clone();
toString();
notify();
notifyAll();
wait();
finalize();
clone
protected Object clone()
throws CloneNotSupportedException
创建并返回这个对象的一个副本。(默认浅拷贝)
/**
* @return a clone of this instance.
* @throwsCloneNotSupportedExceptionif the object's class does not
* support the {@code Cloneable} interface. Subclasses
* that override the {@code clone} method can also
* throw this exception to indicate that an instance cannot
* be cloned.
* @see java.lang.Cloneable
*/
protected native Object clone() throws CloneNotSupportedException;
例如:
class Test1 implements Cloneable{
int num;
String s = "初始值";
Test1(int temp){
num = temp;
System.out.println("num = " + num);
}
Test1(String temp){
System.out.println("s = " + temp);
s = temp;
}
Test1(String s, int n){
this(n);
// 构造器中调用构造器!
this.s = s;
System.out.println("String and int args");
}
void Pain(){
System.out.println("num = " + num + " s = " + s);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public class Test {
public static void main(String[] args) throws CloneNotSupportedException{
Test1 p = new Test1("oh", 76);
Test1 i = (Test1)p.clone();
i.Pain();
}
}
输出:
num = 76
String and int args
num = 76 s = oh
clone 需要在类中重写后才能调用
toString();
返回该对象的字符串表示形式
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
在不重载的情况下, toString(); 语句就是按照上面的方法做的
(1).对象不一定会被回收。
(2).垃圾回收不是析构函数。
(3).垃圾回收只与内存有关。
(4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。
引用链接:http://blog.csdn.net/carolzhang8406/article/details/6705831
线程相关方法
notify
不能重载,作用是唤醒一个等待(暂停)的线程
notifyAll();
唤醒所有等待(暂停)的线程
wait();
暂停该线程
finalize();
垃圾回收器准备释放内存时调用 finalize();
以上就是 Object 对象拥有的方法了,因为后面实例很长,就不放了
页:
[1]