`
wangcb80
  • 浏览: 20569 次
  • 性别: Icon_minigender_1
  • 来自: 呼伦贝尔
最近访客 更多访客>>
社区版块
存档分类
最新评论

对象引用之间的比较、对象内容之间的比较

阅读更多

关系操作符生成的是一个boolean(布尔)结果,它们计算的是操作数的值之间的关系。

关系操作符包括:<><=>===!= (cannot say <>)。其中“==!=”适用 于所有的基本类型,而其他比较符不适用于boolean类型。

 

关系操作符“==!=”也适用于所有的对象:

 

public class Equivalence{
	public static void main(String[] args){
		Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
		System.out.println(n1 == n2);        
		System.out.println(n2 != n2);
	}
}///:~output
false
true

     ==!=在此是比较对象的引用,而不是对象的内容。

 

 

public class EqualsMethod{
	public static void main(String[] args){
		Integer n1 = new Integer(47);
		Integer n2 = new Integer(47);
		System.out.println(n1.equals(n2));
	}
}///:~output
true

   如果要比较对象的内容,就要使用所有对象都适用的特殊方法:equals();

   但这个方法不适用于基本类型,基本类型使用==!=即可。

 

class Value{
	int i;
}

public class EqualsMethod2{
	public static void main(String[] args){
		Value v1 = new Value();
		Value v2 = new Value();
		v1.i = v2.i = 100;
		System.out.println(v1.equals(v2));
	}
}///:~output
false

   如果你要创建自己的类(如Value类),再去用equals()比较对象内容的相等性,则只会比较对象的引用,因为新类中的equals()方法默认是比较引用,除非我们重载equals()方法。

 

   新建类的equals()方法是从Object类继承下来的,方法实现如下:

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

    从该方法内部的代码实现,可以看出,它是比较的对象的引用。

 

equals()方法,大多数Java类库都实现了用来比较对象的内容,而非比较对象的引用。

 

 

分享到:
评论

相关推荐

    java对象和对象的引用之间的关系

    在Java编程语言中,理解对象和对象引用之间的关系是非常重要的基础。对象是类的一个实例,而对象引用则是用于访问该对象的一种手段。下面将详细探讨这两个概念。 #### 二、对象的创建过程 在Java中,当我们创建一...

    对象与引用之间的概念

    ### 对象与引用之间的概念 #### 一、引言 在C++等面向对象编程语言中,理解对象与引用之间的关系对于深入掌握面向对象技术至关重要。本文将详细探讨这一概念,帮助初学者清晰地区分对象与引用的区别。 #### 二、...

    值引用与对象引用

    理解值引用与对象引用之间的区别对于编程至关重要。值引用适用于基本类型和值类型,提供了一种简单且高效的引用机制;而对象引用则用于引用复杂的对象结构,虽然更加灵活但也带来了更多的潜在问题。在处理诸如`...

    java中对象和对象引用的区别!

    在Java中,“=”符号并不意味着两个对象之间的赋值,而是一个指向对象地址的传递。例如: ```java A a3 = new A(); A a4 = new A(); a3 = a4; // 此时a3和a4都指向同一个由new A()创建的对象 ``` 这里需要...

    Java中对象与引用

    为了更直观地理解对象与引用之间的关系,可以将其比喻为风筝与线之间的关系。假设我们有一个风筝,但没有线,那么风筝就会飘走。同样,如果没有引用,对象也将无法被访问。 1. **一个引用可以指向多个对象**: 当...

    Java基础:对象及引用祥解

    2. **对象的参数传递**:当传递对象作为参数时,实际上传递的是对象引用的副本。这意味着在方法内部对这个引用所做的任何更改都不会影响到原始引用。但是,如果通过该引用修改了对象本身的状态,则会影响到原始引用...

    对象引用与对象的区别

    在Java编程语言中,理解对象和对象引用之间的区别是非常重要的。这不仅是初学者经常会遇到的难点,也是深入学习面向对象编程的基础。 #### 对象的概念 对象是Java程序中的基本运行时实体。它代表现实世界中的事物...

    对象与引用之间的一些基本概念

    了解这两者之间的关系对于学习面向对象编程至关重要。 首先,让我们澄清对象的概念。对象是在内存中根据类的结构创建的实体,它包含类中定义的属性(成员变量)和方法(成员函数)。例如,我们有一个名为`Vehicle`...

    java对象引用易混解析

    ### Java对象引用详解 #### 一、Java对象与引用的基本概念 在Java中,对象是类的一个实例,而引用则是指向这些对象的变量。理解Java中的对象与引用之间的区别至关重要,因为这涉及到如何管理和操作对象。 #### 二...

    C++对象和指针的引用

    在实际中,使用对象引用作函数参数要比使用对象指针作函数更普遍,这是因为使用对象引用作函数参数具有用对象指针作函数参数的优点,而用对象引用作函数参数将更简单,更直接。所以,在C++编程中,人们喜欢用对象...

    java不同对象之间及集合的复制

    在Java编程中,对象之间的复制是一项常见的操作,特别是在数据传输、模型转换或者持久化存储等场景下。这里的“java不同对象之间及集合的复制”主要关注如何高效且便捷地完成对象及其集合的复制工作,避免繁琐的手动...

    java中对象创建、初始化、引用

    虽然两者之间存在一定的相似性,但在Java中句柄主要用来处理对象引用,而非直接指向对象的内存地址。 #### 三、总结 通过上述内容,我们可以了解到在Java中创建对象、初始化以及引用传递的基本流程和概念。对象是...

    对象引用、可变性和垃圾回收1

    在Python编程语言中,对象引用、可变性和垃圾回收是理解其动态特性的核心概念。首先,对象引用意味着变量实际上是对内存中对象的标签,而不是像盒子那样存储数据。当执行赋值语句时,Python会先在右侧创建或获取对象...

    Java对象及其引用的理解

    而对于对象引用,虽然传递的是引用的副本,但这些副本都指向同一个堆内存中的对象。这意味着,如果在方法内改变了对象的属性,外部也能看到这些变化,因为所有引用都在指向同一个对象。 例如,假设我们有一个`...

    引用和对象的关系,还有值传递

    - **对象引用**:当传递对象引用时,也是传递引用的副本。这意味着修改方法内的引用值(指向其他对象)不会影响到原始引用,但修改该引用所指向的对象的状态(如对象属性)会影响到原始引用。 #### 结论 理解Java...

    Java中的对象和引用详解

    为了帮助大家更好地理解对象和对象引用之间的关系,我们将从对象和对象引用的概念、区别和联系三个方面进行详细的讲解。 一、对象的概念 在Java中,对象是类的实例。每个对象都是某个类的实例,比如所有的人统称为...

    对象-关系数据库之间的映射

    3. **映射关联、聚合和组合**:对象之间的关联、聚合和组合需要转换为数据库的关系。这通常通过外键或嵌入数据来实现。关联可以是一对一、一对多或多对多,每种都需要不同的处理方式。 4. **实现关系**:对象模型中...

    Java中的对象和对象引用实例浅析

    在Java编程中,对象和对象引用是两个核心概念,它们之间有着密切的关系,但各自代表着不同的实体。理解这两个概念对于深入学习Java至关重要。 首先,对象是Java中类的实例。"万物皆对象"是Java设计理念的一部分,...

    java不同对象及集合的多次复制

    本主题将深入探讨如何使用注解实现不同对象、相同对象以及集合与集合之间的多次复制,以避免繁琐的手动复制过程。 1. **对象复制的基本概念** - **浅拷贝**:创建一个新的对象,只复制对象的引用,不复制内部引用...

    浅析Java 对象引用和对象本身

    在Java编程语言中,对象和对象引用的概念是理解面向对象编程的关键部分。本文将深入探讨这两个概念,并通过示例代码来展示它们之间的区别和应用场景。 首先,我们需要明确什么是Java对象和对象引用。在Java中,对象...

Global site tag (gtag.js) - Google Analytics