打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Object
转眼间学习Java语言已经3年左右的样子,但是感觉自己的Java水平的确不像样子。总结一下,发现自己的学习方式存在一定问题,关键是缺少必要的笔记和总结。所以,打算总结和研究一下Java的基本API,希望可以得到提升。
话不多说,在Java中存在一切皆对象的说法。即所有的类皆有统一的一个老祖宗:Object类。所以,就拿它来开刀。
第一次写这样的东西,若是不好请大家多多包涵。
1、clone() 创建并返回调用该方法的对象的一个副本。此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。
这个方法,Object类型的变量引用的对象居然是无法调用的,还有基本类型和其对应的对象类都是无法调用的,String类型同样无法调用。
Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
String[] name = new String[3];
for (int i = 0; i < name.length; i++) {
name[i] = "name" + i;
}
String[] nameClone = name.clone();
System.out.println(name);
System.out.println(nameClone);
2、equals(Object obj) 调用该方法的对象与参数对象是否相等。Object类的equals方法是根据是否同一个对象来判断的。
如上图,尽管它们的输出是相同的,但因为不是同一个对象所以name.equals(nameClone);得到的结果为false。
3、finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
4、getClass() 返回调用该方法对象的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
System.out.println(name.getClass());
System.out.println(new int[1].getClass());
System.out.println(new char[1].getClass());
System.out.println(new Double[1].getClass());
5、hashCode() 实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。
System.out.println(name.hashCode());    //输出为:25860399
6、toString() 返回调用该方法对象的字符串表示。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
System.out.println(name.toString());    //输出为:[Ljava.lang.String;@18a992f
7、notify() 唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个 wait 方法,在对象的监视器上等待。
一次只能有一个线程拥有对象的监视器。
8、notifyAll() 唤醒在此对象监视器上等待的所有线程。线程通过调用其中一个 wait 方法,在对象的监视器上等待。
9、wait() 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
10、wait(long timeout) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
11、wait(long timeout, int nanos) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
额……这东西果然不好写,还是API解释比较权威,写着写着,就编程粘贴API了,无语!得练习啊!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java源码解析
面试官:Object有些什么方法?教你如何吊打他
所有类的父类 Java Object
Object中有哪些公共方法及作用
sleep()和wait()有什么区别
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服