Java对象比较:'=='与equals()的差异与对象生命周期

需积分: 9 0 下载量 57 浏览量 更新于2024-08-23 收藏 919KB PPT 举报
在Java编程中,对象是核心概念之一,它们是程序中用于表示现实世界或抽象概念的数据结构。对象包含了属性(数据)和行为(方法),使得我们能够通过对象来模拟现实世界的实体或逻辑。本讲主要涵盖了对象的创建、访问、引用、比较以及销毁等关键知识点。 1. 对象的创建 在Java中,创建对象是通过`new`关键字配合构造方法完成的。当我们调用`new Book()`这样的语句时,实际上是让Java在内存中分配一块空间来存储该对象,并自动调用构造方法来初始化对象的状态。构造方法根据类的定义来设定新对象的属性和初始状态。 2. 访问对象的属性和行为 创建对象后,我们可以使用`对象.成员`的方式来访问和操作对象的属性和行为。例如,如果`Book`类有一个`title`属性和`printTitle()`方法,我们可以通过`book.title`来获取或设置书的标题,通过`book.printTitle()`来调用打印标题的方法。 3. 对象的引用 在Java中,我们所说的“对象”其实是指向对象内存地址的引用,而非对象本身。例如,`Book book;`声明了一个`Book`类型的引用,但并未创建对象。要使引用指向一个对象,我们需要使用`new`关键字进行实例化,如`book = new Book();`。 4. 对象的比较 Java中,有两种比较对象的方式:`==`运算符和`equals()`方法。`==`比较的是对象的引用,即两个引用是否指向内存中的同一位置;而`equals()`方法(默认情况下也是比较引用,但在许多类中如`String`,它被重写以比较对象的内容)。例如,两个`String`对象即使内容相同,如果它们是分开创建的,`==`也会返回`false`,而`equals()`会返回`true`。 5. 对象的销毁 Java有内置的垃圾回收机制(Garbage Collection, GC),负责自动回收不再使用的对象所占用的内存。一旦对象不再被任何引用指向,GC就会将其标记为可回收,并在合适的时机释放其占用的内存。因此,开发者无需手动管理内存。 6. 局部变量的有效范围 局部变量只在其声明的代码块内有效,如方法内部。一旦方法执行完毕,局部变量就会失效,其所占用的内存也会被释放。 7. 静态变量、常量和方法 静态成员属于类,而不是类的实例。这意味着所有类的实例共享同一份静态变量和方法的副本,节省内存。例如,`static final double PI = 3.14159;`定义的常量`PI`在所有类实例间都是共用的。 8. 权限修饰符 Java提供了`private`、`public`和`protected`等权限修饰符来控制类成员的访问权限。`private`的成员只能在类内部访问,`public`成员可以在任何地方访问,而`protected`成员在类及其子类中可访问。 理解并掌握这些基础概念对于编写高质量的Java代码至关重要,它们构成了面向对象编程的基础。在实际开发中,合理地运用这些知识可以提高代码的可读性、可维护性和性能。