JAVA源码剖析之---Object类(三)---toString,wait,notify,notifyAll,finalize方法的使用

本文详细探讨了Java Object类中的toString(), wait(), notify(), notifyAll()以及finalize()方法。讲解了它们的功能、使用场景及注意事项,包括如何唤醒等待线程,何时重写toString()方法等。" 115296366,1368632,PHP遍历输出26个英文字母的方法,"['PHP', '函数', '循环']
摘要由CSDN通过智能技术生成

今天剖析的方法有:toString()方法,notify()方法,notifyAll()方法,wait()方法,wait(args)方法,wait(args,args)方法,finalize()方法。

第6个方法:

  public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

该方法为被public修饰,所有对象都可见。

该方法返回对象的字符串表示形式,开发人员能够清晰的看到一个对象的各种属性。在官方建议上,建议所有的方法都重写这个方法。Eclipse有代码生成器,可以方便的重写该方

法。

看方法体的内容,可以知道,最终返回getClass().getName() + ' @' + Integer.toHexString(hashCode())。下面用一个例子看一下:

举例:

package edu.java.test;

public class TestToString {

	public static void main(String[] args) {
		TestClone tc = new TestClone();
		tc.setName("my name is java");
		tc.setAge("70 yeas");
		System.out.println("未重写之前的toString方法:"+tc.getClass().getName()+"@"+Integer.toHexString(tc.hashCode()));
		System.out.println("重写之后的toString方法:"+tc.toString());
	}
}

上面示例了两个打印语句,一个是原生态的toString方法,一个是重写后的toString方法。下面是结果:

未重写之前的toString方法:edu.java.test.TestClone@1e57e8f
重写之后的toString方法:TestClone [name=my name is java, age=70 yeas]

可以看出,原生态的toString方法,不能很好的显示出对象的属性,所以在toString源码里,java开发人员建议每个类都应该重写toString方法的原因。下面是重写后的toString方法。

	@Override
	public String toString() {
		return "TestClone [name=" + name + ", age=" + age + "]";
	}

第7个方法:wait()

 public final void wait() throws InterruptedException {
        wait(0);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值