Java中的Object类
来源:互联网 发布:山东seo服务公司 编辑:程序博客网 时间:2024/04/19 18:37
http://lavasoft.blog.51cto.com/62575/15456/
java.lang
类 Object
java.lang.Object
public class Object
- 从以下版本开始:
- JDK1.0
- 另请参见:
Class
Object()
protected Object
clone()
创建并返回此对象的一个副本。
boolean
equals(Object obj)
指示某个其他对象是否与此对象“相等”。
protected void
finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
Class<? extendsObject>
getClass()
返回一个对象的运行时类。
int
hashCode()
返回该对象的哈希码值。
void
notify()
唤醒在此对象监视器上等待的单个线程。
void
notifyAll()
唤醒在此对象监视器上等待的所有线程。
String
toString()
返回该对象的字符串表示。
void
wait()
导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或 notifyAll()
方法。 void
wait(long timeout)
导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或 notifyAll()
方法,或者超过指定的时间量。 void
wait(long timeout, int nanos)
导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或 notifyAll()
方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。 Object
public Object()
getClass
public final Class<? extends Object> getClass()
- 返回一个对象的运行时类。该 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
- 返回:
- 表示该对象的运行时类的
java.lang.Class
对象。此结果属于类型Class<? extends X>
,其中 X 表示清除表达式中的静态类型,该表达式调用getClass
。
hashCode
public int hashCode()
- 返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,
java.util.Hashtable
提供的哈希表。- 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
- 如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用
hashCode
方法都必须生成相同的整数结果。 - 以下情况不 是必需的:如果根据
equals(java.lang.Object)
方法,两个对象不相等,那么在两个对象中的任一对象上调用 hashCode 方法必定会生成不同的整数结果。但是,程序员应该知道,为不相等的对象生成不同整数结果可以提高哈希表的性能。
- 返回:
- 此对象的一个哈希码值。
- 另请参见:
equals(java.lang.Object)
,Hashtable
equals
public boolean equals(Object obj)
- 指示某个其他对象是否与此对象“相等”。
- 自反性:对于任何非空引用值
x
,x.equals(x)
都应返回true
。 - 对称性:对于任何非空引用值
x
和y
,当且仅当y.equals(x)
返回true
时,x.equals(y)
才应返回true
。 - 传递性:对于任何非空引用值
x
、y
和z
,如果x.equals(y)
返回true
,并且y.equals(z)
返回true
,那么x.equals(z)
应返回true
。 - 一致性:对于任何非空引用值
x
和y
,多次调用 x.equals(y) 始终返回true
或始终返回false
,前提是对象上equals
比较中所用的信息没有被修改。 - 对于任何非空引用值
x
,x.equals(null)
都应返回false
。
- 自反性:对于任何非空引用值
- 参数:
obj
- 要与之比较的引用对象。- 返回:
- 如果此对象与 obj 参数相同,则返回
true
;否则返回false
。 - 另请参见:
hashCode()
,Hashtable
clone
protected Object clone() throws CloneNotSupportedException
- 创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。一般来说,对于任何对象 x,如果表达式:
是正确的,则表达式:x.clone() != x
将为 true,但这些不是绝对条件。一般情况下是:x.clone().getClass() == x.getClass()
将为 true,但这不是绝对条件。x.clone().equals(x)
- 返回:
- 此实例的一个克隆。
- 抛出:
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口,则重写clone
方法的子类也会抛出此异常,以指示无法克隆某个实例。- 另请参见:
Cloneable
toString
public String toString()
- 返回该对象的字符串表示。通常,
toString
方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。getClass().getName() + '@' + Integer.toHexString(hashCode())
- 返回:
- 该对象的字符串表示形式。
notify
public final void notify()
- 唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个
wait
方法,在对象的监视器上等待。- 通过执行此对象的同步 (Sychronized) 实例方法。
- 通过执行在此对象上进行同步的
synchronized
语句的正文。 - 对于
Class
类型的对象,可以通过执行该类的同步静态方法。
- 抛出:
IllegalMonitorStateException
- 如果当前的线程不是此对象监视器的所有者。- 另请参见:
notifyAll()
,wait()
notifyAll
public final void notifyAll()
- 唤醒在此对象监视器上等待的所有线程。线程通过调用其中一个
wait
方法,在对象的监视器上等待。 - 抛出:
IllegalMonitorStateException
- 如果当前的线程不是此对象监视器的所有者。- 另请参见:
notify()
,wait()
wait
public final void wait(long timeout) throws InterruptedException
- 导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或notifyAll()
方法,或者超过指定的时间量。- 其他某个线程调用此对象的 notify 方法,并且线程 T 碰巧被任选为被唤醒的线程。
- 其他某个线程调用此对象的 notifyAll 方法。
- 其他某个线程
中断
线程 T。 - 已经到达指定的实际时间。但是,如果 timeout 为零,则不考虑实际时间,该线程将一直等待,直到获得通知。
synchronized (obj) {while (<condition does not hold>)obj.wait(timeout);... // Perform action appropriate to condition }
(有关这一主题的更多信息,请参阅 Doug Lea 撰写的《Concurrent Programming in Java (Second Edition)》(Addison-Wesley, 2000) 中的第 3.2.3 节或 Joshua Bloch 撰写的《Effective Java Programming Language Guide》(Addison-Wesley, 2001) 中的第 50 项。 - 参数:
timeout
- 要等待的最长时间(以毫秒为单位)。- 抛出:
IllegalArgumentException
- 如果超时值为负。IllegalMonitorStateException
- 如果当前的线程不是此对象监视器的所有者。InterruptedException
- 如果在当前线程等待通知之前或者正在等待通知时,另一个线程中断了当前线程。在抛出此异常时,当前线程的中断状态 被清除。- 另请参见:
notify()
,notifyAll()
wait
public final void wait(long timeout, int nanos) throws InterruptedException
- 导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或notifyAll()
方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。1000000*timeout+nanos
- 其他线程通过调用
notify
方法,或notifyAll
方法通知在此对象的监视器上等待的线程醒来。 timeout
毫秒值与nanos
毫微秒参数值之和指定的超时时间已用完。
synchronized (obj) {while (<condition does not hold>)obj.wait(timeout, nanos);... // Perform action appropriate to condition }
此方法只应由作为此对象监视器的所有者的线程来调用。请参阅notify
方法,了解线程能够成为监视器所有者的方法的描述。 - 其他线程通过调用
- 参数:
timeout
- 要等待的最长时间(以毫秒为单位)。nanos
- 额外时间(以毫微秒为单位,范围是 0-999999)。- 抛出:
IllegalArgumentException
- 如果超时值是负数,或者毫微秒值不在 0-999999 范围内。IllegalMonitorStateException
- 如果当前线程不是此对象监视器的所有者。InterruptedException
- 如果在当前线程等待通知之前或者正在等待通知时,其他线程中断了当前线程。在抛出此异常时,当前线程的中断状态 被清除。
wait
public final void wait() throws InterruptedException
- 导致当前的线程等待,直到其他线程调用此对象的
notify()
方法或notifyAll()
方法。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。synchronized (obj) {while (<condition does not hold>)obj.wait();... // Perform action appropriate to condition }
此方法只应由作为此对象监视器的所有者的线程来调用。请参阅notify
方法,了解线程能够成为监视器所有者的方法的描述。 - 抛出:
IllegalMonitorStateException
- 如果当前的线程不是此对象监视器的所有者。InterruptedException
- 如果在当前线程等待通知之前或者正在等待通知时,另一个线程中断了当前线程。在抛出此异常时,当前线程的中断状态 被清除。- 另请参见:
notify()
,notifyAll()
finalize
protected void finalize() throws Throwable
- 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写
finalize
方法,以配置系统资源或执行其他清除。 - 抛出:
Throwable
- 此方法抛出的Exception
0 0
- Java中的Object类
- java中的object类
- Java中的Object类
- Java中的Object类
- java中的object类
- java中的Object类
- Java中的Object类
- java中的Object类
- Java中的Object类
- Java中的Object类
- Java中的Object类
- java中的object类
- JAVA中的Object类
- java中的Object类
- Java中的 Object类
- Java中的Object类
- Java Object类中的方法
- Java中的Object类介绍
- sql中的group by 和 having 用法解析
- 细谈colorPrimary用于控制ActionBar背景色的好处
- 写给开发者:记录日志的10个建议
- 海志OA办公系统
- 黑马程序员--java 类的继承
- Java中的Object类
- 自定义安卓的组合控件
- 对IO的初步理解与使用
- java环境下导出word含图表
- 二叉树遍历的非递归实现
- 基于CORS的geoserver同源访问策略
- socket关闭
- 迷之节约
- realloc