`
tomotoboy
  • 浏览: 166846 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java Object详解

    博客分类:
  • Java
阅读更多
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。来看一下object的源码吧


package java.lang;
public class Object {
    
    private static native void registerNatives();
    static {
        registerNatives();
    }
   /* 返回此 Object 的运行时类。*/
    public final native Class<?> getClass();

/*
hashCode 的常规协定是:
1.在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。 
2.如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。 
3.如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。
*/

    public native int hashCode();


    public boolean equals(Object obj) {
	return (this == obj);
    }


    protected native Object clone() throws CloneNotSupportedException;

    /*返回该对象的字符串表示。*/
    public String toString() {
	return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

   /*唤醒在此对象监视器上等待的单个线程。*/
    public final native void notify();

   /*唤醒在此对象监视器上等待的所有线程。*/
    public final native void notifyAll();


/*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。 
当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的线程醒来。然后该线程将等到重新获得对监视器的所有权后才能继续执行。*/
    public final void wait() throws InterruptedException {
	wait(0);
    }



   /*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。*/
    public final native void wait(long timeout) throws InterruptedException;

    /* 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。*/
    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);
    }

    /*当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。*/
    protected void finalize() throws Throwable { }
}

分享到:
评论

相关推荐

    java中关键字Object详解

    Java中的`Object`类是所有类的根,这意味着无论你定义的任何自定义类,如果没有显式地声明继承自其他类,那么它们都会隐式地继承`Object`类。`Object`类提供了基本的方法,这些方法是所有Java对象共有的。下面我们将...

    java集合详解.pdf

    Java 集合详解 Java 集合框架是 Java 语言中最重要的一部分,掌握集合框架可以让开发者更好地进行 Java 编程。下面将详细介绍 Java 集合框架的实现原理和使用方法。 1.1 集合框架概述 Java 集合框架是 Java 语言...

    java反射详解

    ### Java反射机制详解 #### 一、引言 Java反射机制是Java编程语言的一个核心特性,它允许程序在运行时动态地访问类的信息,并能够直接操作这些类的对象。这种能力对于许多开发框架(如Spring)来说至关重要,因为...

    Java集合详解,详细讲解java的集合类

    Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection接口定义了一些基本操作,如add、remove和contains等。同时,Collection接口提供了iterator()方法,使得可以通过迭代器遍历集合中的每个...

    Java Object类详解_动力节点Java学院整理

    Java Object类是所有Java类的根,它定义了一些基本的方法,这些方法在所有类中都可用。以下是Object类中的其他关键方法: 4. `toString()`: 这个方法返回一个表示当前对象的字符串。默认的实现返回类名加@加十六...

    详解Java中Object 类的使用.rar

    这个压缩包文件"详解Java中Object 类的使用.rar"包含了对Java中Object类的深入探讨,通过阅读其中的"详解Java中Object 类的使用.txt"文本,我们可以了解到关于Object类的一些关键知识点。 1. **对象的创建与类型...

    Java Object类的常用方法详解与应用实践

    Object类的方法是Java编程的基础,它们为所有对象提供了基本的行为。掌握这些方法的用法和最佳实践,可以帮助我们编写出更加健壮、高效和可维护的Java代码。通过重写equals、hashCode和toString方法,我们可以确保...

    javaswing详解

    Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation ...在学习过程中,参考《Java Swing图形界面开发与案例详解》等专业书籍,结合中文API文档,能够更深入地理解和运用Java Swing。

    JAVA集合详解

    ### JAVA集合详解 #### 一、集合框架概述 ##### 1. 什么是JAVA集合框架? JAVA集合框架(Java Collection Framework)是一种为表示和操作集合所规定的标准体系结构,旨在为开发人员提供一种灵活且高效的机制来...

    java泛型详解java泛型详解.doc

    在传统的 Java 集合框架中,如 Map 和 List,存储的数据对象类型是 Object,这导致在使用集合时需要频繁地进行强制类型转换。例如,从 Map 中获取值通常需要将返回的 Object 强制转换为目标类型,如 String。而泛型...

    java应用详解

    在Java应用详解中,我们首先要了解的是Java的基础知识。这包括Java语法、数据类型、控制结构(如if语句、for循环和while循环)、类和对象、封装、继承和多态等核心概念。这些构成了Java编程的基础,对于理解和编写...

    Java集合详解Java集合详解.doc

    Java集合框架是Java编程语言中的一个核心组成部分,它为存储、管理和操作对象提供了一组高效且灵活的数据结构。本文将深入解析Java集合框架的主要组成部分,包括Collection、List、Set和Map,以及它们的相关实现和...

    java webservice 详解 ws

    Web服务是基于XML(eXtensible Markup Language)的数据交换标准,通过SOAP(Simple Object Access Protocol)协议传输,使用WSDL(Web Services Description Language)描述服务接口,并通过UDDI(Universal ...

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流 多线程 深入理解内部类 javac和javap Java8新特性终极指南 序列化和反序列化 继承、封装、多态的实现原理 容器...

    java反射机制详解

    ### Java反射机制详解 #### 一、反射机制是什么 反射机制是Java编程语言的一个核心特性,它允许程序在运行时动态地获取类的信息,并且能够动态地创建对象和调用对象的方法。简单来说,反射机制使得Java程序可以...

    Java Web开发详解随书源代码下载

    而ORM(Object-Relational Mapping)框架如Hibernate和MyBatis,则简化了这一过程,将数据库操作与Java对象映射起来,提高了开发效率。 此外,前端技术也是Java Web开发的一部分。HTML、CSS和JavaScript构成了网页...

    JAVA基础--JAVA中的反射机制详解

    JAVA 反射机制详解 JAVA 反射机制是 Java 语言中的一种动态获取信息和动态调用对象方法的功能。它允许程序在运行时获取类的信息、构造对象、获取成员变量和方法、调用对象的方法等。 Java 反射机制主要提供了以下...

    java-lang包详解

    - **Object**: 所有Java类的根类,包含了对象的基本操作,如equals()、toString()等。 - **System**: 提供系统相关的属性和操作,如标准输入/输出流、系统属性等。 - **ClassLoader**: 用于加载类的机制,允许...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

Global site tag (gtag.js) - Google Analytics