学习一个比较parent的class吧。我什么时候能毕业啊。
package java.lang;
/**
* Class Object is the root of the class hierarchy(层次结构)
*/
public class Object {
private static native void registerNatives();
static {
registerNatives();
}
/**
* Returns the runtime class of an object. That Class
* object is the object that is locked by static synchronized
* methods of the represented class.
PS:当static method需要synchronized修饰的时候,需要该object的Class
*/
public final native Class getClass();
/**
* 常规协定:
* The general contract of hashCode is:
* <li>Whenever it is invoked on the same object more than once during
* an execution of a Java application, the hashCode method
* must consistently return the same integer。
就是对同一object多次调用hashCode都返回一样的value
* <li>如果2个object的equals方法判断相等,他们的hashCode一定相等
*/
public native int hashCode();
/**
一大堆的规定如自反性不想记忆,也记不住,总之就是那样
主要是下面的Note:
* Note that it is generally necessary to override the hashCode
* method whenever this method is overridden, so as to maintain the
* general contract for the hashCode method, which states
* that equal objects must have equal hash codes.
*
必须override hashcode,参照上面的协定
*/
public boolean equals(Object obj) {
return (this == obj);
}
/**protected修饰,需要override*/
protected native Object clone() throws CloneNotSupportedException;
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
/**
* 唤醒在this object 上wait的单个线程,从等待池转移到锁池。
这个线程需要重新获取object's monitor,然后同步
如果有一车线程都在那等着,就像等公交一样,我擦。
那么JVM会选任意一个thread唤醒让她上车,要问选择的条件,我想谁好看就上谁吧
*/
public final native void notify();
/**
* 唤醒在this object上wait的所有线程,这回公平了,都TMD给我上车吧,
看你们谁能最先拿到object's monitor,是抢占式的,不是时间片式的。
*/
public final native void notifyAll();
/**
使当前线程等待,放弃monitor,进入等待池.如果另外一个线程调用了interrupted,则抛
String s = "javaeye";
synchronized(s){
while(1==1){
obj.wait();
}
}
*/
public final native void wait(long timeout) throws InterruptedException;
/**
不懂实际情况下什么时候用到这个
*/
public final void wait(long timeout, int nanos) throws InterruptedException {
if (timeout < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 || (nanos != 0 && timeout == 0)) {
timeout++;
}
wait(timeout);
}
public final void wait() throws InterruptedException {
wait(0);
}
protected void finalize() throws Throwable {
}
}
分享到:
相关推荐
java.lang.IllegalArgumentException Cannot format given Object as a Date
Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中基本的类java.lang.Object开始谈起。 Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object...
在Oracle 11.2.0.4中调用 javax.mail 发送邮件时...EXEC dbms_java.grant_permission( '<your_schema_please_change>','SYS:java.lang.RuntimePermission', 'setContextClassLoader', '' ); 第二步:解决方案看文档中。
boolean delete(java.lang.String sql, java.util.Map<java.lang.Integer,java.lang.Object> elements) 根据传入的参数删除单条记录的方法 boolean delete(java.lang.String sql, java.lang.Object[] elements)...
boolean delete(java.lang.String sql, java.util.Map<java.lang.Integer,java.lang.Object> elements) 根据传入的参数删除单条记录的方法 boolean delete(java.lang.String sql, java.lang.Object[] elements)...
weblogic日志报如下错误原因及解决方法: WebLogic Server 9.2 Repeatedly Throws: java.lang.AssertionError: Registered more than one instance with the same objectName
java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.ArithmeticException 当出现异常的运算条件时,抛出此异常。 这个异常的解释是 "数学运算异常 ",...
java.lang.object原始码最终不推荐使用java.lang.Object.finalize() 我的博客文章中的示例的Gradle源代码存储库。 在Linux Mint(SUSE Linux)上构建和测试。 由于gradle当前不支持Java 11,因此可以使用标准Java...
主要介绍了java源码阅读之java.lang.Object,具有一定借鉴价值,需要的朋友可以参考下
了解 java.lang 包 掌握包装类 掌握String 和 StringBuffer 类 运用以下类的方法: Math Class Object
java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....
dubbo-monitor监控中心,基于alibaba dubbo.jar开发,解决Decode rpc invocation failed: expected map/object at java.lang.String (Ljava/lang/String)、com.alibaba.dubbo.common.URL' could not be instantiated...
提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。
java.lang.Object com.opensymphony.xwork2.ActionContext (implements java.io.Serializable) org.apache.struts2.ServletActionContext (implements org.apache.struts2.StrutsStatics) org.apache.struts2....
import java.lang.Integer.parseInt; public class StaticImport { int x = parseInt("123"); System.out.println(x); } 这样的程序如果不在IDE 工具中输入,是很难看出这个程序代码会出现问题,可它偏偏就出问题...
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....
java.lang.Object下的各种方法
Beginning iOS 6 Development Exploring the iOS SDK SourceCode
spring 4.0 未翻译java.lang.Object java.util.AbstractMap,V> (implements java.util.Map,V>) java.util.HashMap,V> (implements java.lang.Cloneable, java.util.Map,V>, java.io.Serializable) java.util....