`
sunajax
  • 浏览: 34986 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java学习笔记之一(深入理解Object类中方法)

    博客分类:
  • Java
阅读更多
[size=small]   在根类Object中包含一下方法:

  1. clone();
  2. equals();
  3. finalize();
  4. getClass();[align=left][/align]
  5. notify(),notifyAll();
  6. hashCode();
  7. toString();
  8. wait();
我们知道所有的类都是继承于Object,所以我们编写的类默认都具有这些方法,究竟这些方法做什么用,需要让所有的对象都拥有,我将一一来解释。
     首先大家要明白回调(callback)方法,所谓回调方法就是程序在运行特定功能时JVM会自动调动这些方法,假设你使用System.out.print(obj)打印出对象obj信息,则运行时JVM会自动调用obj对象的toString()方法,toString()方法就是回调方法。理解回调方法后,下面我们来看这些方法:
[list]
  • clone():clone方法主要用于克隆当前对象,制作本地对象,这肯定需要在所有对象中所拥有,在讲解参数按值传递和按引用传递时再讲解它的用法;
  • [*]equals()、toString()和hashCode():这两个方法主要用于比较两个对象是否相等,查看Object源代码(要多查看源代码便于自己理解)知道,默认的equals()是:
    boolean equals(Object obj){
                                  return this == obj;
                              }
    ,
    ==只有当两个对象地址相同时才返回true,所以默认的equals()方法根本没什么用,因为对象在内存中的地址(基本类型不同)肯定不同的;所以我们编写类时最好覆盖默认的equals()、hashCode()和toString()方法(查看JDK中的类也大部分覆盖了这些方法),默认的hashCode()返回的值就是对象在内存中的地址,而默认的toString()方法就是打印出对象的地址,toString()和equals()方法内部是通过hashCode()的返回值来实现的,hashCode()是本地(native)方法,所谓本地方法就是使用其他语言(C或C++)编写的,我们可以通过本地接口(JNI)编写本地方法;
  • finalize():这是GC清理对象之前所调用的清理方法,是回调方法,我们可以覆盖这个方法写一些清理的代码,GC会自动扫描没有引用的对象,即对象赋值为null;可以通过调用System.runFinalization()或System.runFinalizersOnExit()强制GC清理该对象前调用finalize()方法,GC有时不会调用对象的finalize()方法(由JVM决定);
  • getClass():返回当前对象的Class类的对象引用,用于取得类名等(方法查看API);
  • notify()、notifyAll()和wait():这三个方法主要用于多线程中,讲解多线程时再具体解释。
  • [/list]
    这是我个人对Object中方法的理解,有失误之处望大虾们指出。
    [/size]
    2
    1
    分享到:
    评论
    2 楼 sunajax 2008-08-18  
    clone()在Object中protected方法,所以子类实现需要覆盖此方法并实现Cloneable接口,那样才能在外部实现clone功能
    1 楼 huxinlong 2008-08-18  
    clone()好像不是object中的方法吧?如果一个类需要clone的话,必须实现Cloneable接口才可以实现clone功能。

    相关推荐

      JAVA学习笔记-良葛格

      Java学习笔记主要涉及Java语言的历史背景、语言特点、应用平台和学习建议。以下是对这些内容的详细解析: ### Java语言的历史背景 Java起源于1990年代初的Sun公司(现为Oracle公司的一部分)的“绿色项目”计划,...

      Java学习笔记一

      在Java学习笔记中,我们将详细探讨这些主题,并通过实例和练习来加深理解。例如,我们可以创建一个简单的继承和多态示例,如定义一个抽象的动物类,然后创建具体的狗和猫类,这两个子类可以覆盖父类的`makeSound()`...

      java学习笔记

      ### Java学习笔记知识点详解 #### 一、Java面向对象编程思想 面向对象编程(Object-Oriented Programming, OOP)是Java的核心特性之一。通过封装、继承和多态这三个基本特征来实现。OOP能够提高代码的复用性和可...

      葛格Java学习笔记

      【葛格Java学习笔记】是一份专为初学者设计的Java编程学习资源,旨在帮助新手逐步掌握Java语言的基础知识和核心概念。这份笔记涵盖了从Java环境配置到编写简单程序的全过程,是Java入门的理想参考资料。 在Java的...

      j2se学习笔记和java学习笔记

      本学习笔记旨在深入理解J2SE的基础概念、核心特性以及实际应用。 一、Java基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点包括跨平台性(Write Once, Run ...

      java全套笔记 来自狂神说java笔录.zip

      11. **Java IO/NIO**:深入理解流的分类,学习非阻塞I/O模型NIO(New Input/Output)。 12. **Java 8及更高版本新特性**:包括Lambda表达式、Stream API、Optional类、日期时间API的改进等。 这些笔记内容全面覆盖...

      入门必备Java学习笔记

      "入门必备Java学习笔记"这个资源,正如其名,旨在帮助初学者掌握Java编程的基础,并逐步深入理解其核心概念。这本书涵盖了Java Standard Edition (Java SE) 的API,Javalang的基本元素,以及数据库连接技术JDBC和...

      corejava学习笔记

      【Java核心知识详解】 ...在深入学习Core Java的过程中,不断地实践和理解这些知识点,将使你逐步成为一名熟练的Java开发者。记得不断探索和学习新的API、框架和技术,以适应Java生态系统的发展。

      java实战经典学习笔记

      ### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...

      阿里P8 架构师整理Java学习笔记.pdf

      ### Java学习笔记知识点总结 #### 一、JVM与内存管理 ...通过以上知识点的总结,我们可以清晰地了解到Java学习笔记中涵盖的主要内容和技术细节,有助于深入理解和掌握Java语言及相关的开发技术。

      java学习资料/笔记整理(一)

      本文将深入探讨“java学习资料/笔记整理(一)”中涉及的重要知识点,包括Java编程思想、类型协变、查询手册以及数据结构与算法。 首先,Java编程思想是理解Java核心概念的关键。这通常涉及到面向对象编程(OOP)...

      Java学习笔记

      Java编程语言的学习涵盖众多知识点,这里我们将主要关注Java集合框架,包括...以上是Java集合框架及相关概念的简要介绍,实际开发中还需要深入理解这些组件的工作原理和最佳实践,以便在各种场景下做出合适的选择。

      JAVA学习笔记1

      ### JAVA学习笔记1:深入解析J2EE框架与关键技术 #### J2EE模式与Value Object概念 在JAVA学习之旅中,深入理解J2EE(Java 2 Platform, Enterprise Edition)框架是至关重要的一步。J2EE是专为开发企业级应用而...

      JAVA学习笔记(全面)

      ### JAVA学习笔记(全面) #### 一、Java技术基础 ##### 1.1 编程语言 ...以上内容只是Java学习笔记的一个概述,深入理解和掌握这些知识点需要不断地实践和探索。希望这份笔记能够为初学者提供一个良好的起点。

      java学习笔记(经典)

      在Java学习笔记中,我们重点关注面向对象的概念及其在实际编程中的应用。 面向对象编程(Object-Oriented Programming,OOP)是相对于面向过程编程的一种编程范式。面向过程编程的核心是函数,而面向对象编程的核心...

    Global site tag (gtag.js) - Google Analytics