类 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`类是所有类的根,这意味着无论你定义的任何自定义类,如果没有显式地声明继承自其他类,那么它们都会隐式地继承`Object`类。`Object`类提供了基本的方法,这些方法是所有Java对象共有的。下面我们将...
Java 集合详解 Java 集合框架是 Java 语言中最重要的一部分,掌握集合框架可以让开发者更好地进行 Java 编程。下面将详细介绍 Java 集合框架的实现原理和使用方法。 1.1 集合框架概述 Java 集合框架是 Java 语言...
### Java反射机制详解 #### 一、引言 Java反射机制是Java编程语言的一个核心特性,它允许程序在运行时动态地访问类的信息,并能够直接操作这些类的对象。这种能力对于许多开发框架(如Spring)来说至关重要,因为...
Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection接口定义了一些基本操作,如add、remove和contains等。同时,Collection接口提供了iterator()方法,使得可以通过迭代器遍历集合中的每个...
Java Object类是所有Java类的根,它定义了一些基本的方法,这些方法在所有类中都可用。以下是Object类中的其他关键方法: 4. `toString()`: 这个方法返回一个表示当前对象的字符串。默认的实现返回类名加@加十六...
这个压缩包文件"详解Java中Object 类的使用.rar"包含了对Java中Object类的深入探讨,通过阅读其中的"详解Java中Object 类的使用.txt"文本,我们可以了解到关于Object类的一些关键知识点。 1. **对象的创建与类型...
Object类的方法是Java编程的基础,它们为所有对象提供了基本的行为。掌握这些方法的用法和最佳实践,可以帮助我们编写出更加健壮、高效和可维护的Java代码。通过重写equals、hashCode和toString方法,我们可以确保...
Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation ...在学习过程中,参考《Java Swing图形界面开发与案例详解》等专业书籍,结合中文API文档,能够更深入地理解和运用Java Swing。
### JAVA集合详解 #### 一、集合框架概述 ##### 1. 什么是JAVA集合框架? JAVA集合框架(Java Collection Framework)是一种为表示和操作集合所规定的标准体系结构,旨在为开发人员提供一种灵活且高效的机制来...
在传统的 Java 集合框架中,如 Map 和 List,存储的数据对象类型是 Object,这导致在使用集合时需要频繁地进行强制类型转换。例如,从 Map 中获取值通常需要将返回的 Object 强制转换为目标类型,如 String。而泛型...
在Java应用详解中,我们首先要了解的是Java的基础知识。这包括Java语法、数据类型、控制结构(如if语句、for循环和while循环)、类和对象、封装、继承和多态等核心概念。这些构成了Java编程的基础,对于理解和编写...
Java集合框架是Java编程语言中的一个核心组成部分,它为存储、管理和操作对象提供了一组高效且灵活的数据结构。本文将深入解析Java集合框架的主要组成部分,包括Collection、List、Set和Map,以及它们的相关实现和...
Web服务是基于XML(eXtensible Markup Language)的数据交换标准,通过SOAP(Simple Object Access Protocol)协议传输,使用WSDL(Web Services Description Language)描述服务接口,并通过UDDI(Universal ...
Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流 多线程 深入理解内部类 javac和javap Java8新特性终极指南 序列化和反序列化 继承、封装、多态的实现原理 容器...
### Java反射机制详解 #### 一、反射机制是什么 反射机制是Java编程语言的一个核心特性,它允许程序在运行时动态地获取类的信息,并且能够动态地创建对象和调用对象的方法。简单来说,反射机制使得Java程序可以...
而ORM(Object-Relational Mapping)框架如Hibernate和MyBatis,则简化了这一过程,将数据库操作与Java对象映射起来,提高了开发效率。 此外,前端技术也是Java Web开发的一部分。HTML、CSS和JavaScript构成了网页...
JAVA 反射机制详解 JAVA 反射机制是 Java 语言中的一种动态获取信息和动态调用对象方法的功能。它允许程序在运行时获取类的信息、构造对象、获取成员变量和方法、调用对象的方法等。 Java 反射机制主要提供了以下...
- **Object**: 所有Java类的根类,包含了对象的基本操作,如equals()、toString()等。 - **System**: 提供系统相关的属性和操作,如标准输入/输出流、系统属性等。 - **ClassLoader**: 用于加载类的机制,允许...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...