`
mengzhiang
  • 浏览: 23935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

==和equals比较

阅读更多
package com.test;

public class StringTest {

	/**
	 * @param args运行期拼接动态字符串会产生大量临时变量
	 */
	public static void main(String[] args) {
		String s1 = "test";
		String s2 = "test";
		//test是存在栈内存的常量池中的,所以两个地址是一样的。
		System.out.println(s1.hashCode());
		System.out.println(s2.hashCode());
		System.out.println(s1.equals(s2));
		System.out.println(s1==s2);
		System.out.println("----------------------------");
		String ss1 = new String("test");
		String ss2 = new String("test");
		//这个new的String是放在堆内存中的,栈中只有指向他们的地址,这个地址是不同的。
		//所以==是false
		//但是String的equals方法还比较了值,如果值相同那么equals放回的是true,
		//所以比较两个String是否相等要用equals,如果比较两个对象是否引用同一个则用==;
		System.out.println(ss1.hashCode());
		System.out.println(ss2.hashCode());
		System.out.println(ss1.equals(ss2));
		System.out.println(ss1==ss2);
		System.out.println("----------------------------");
		
		Object o1 = new Object();
		Object o2 = new Object();
		System.out.println(o1.hashCode());
		System.out.println(o2.hashCode());
		System.out.println(o1.equals(o2));
		System.out.println(o1==o2);
		Double d1 = new Double(4);
		Double d2 = new Double(4);
		System.out.println(d1.hashCode());
		System.out.println(d2.hashCode());
		System.out.println(d1.equals(d2));
		System.out.println(d1==d2);
		System.out.println("----------------------------");
		Object oo1 = new Object();
		Object op2 = new Object();
		System.out.println(o1.hashCode());
		System.out.println(o2.hashCode());
		System.out.println(o1.equals(o2));
		System.out.println(o1==o2);
	}

}

 

分享到:
评论

相关推荐

    ==和equals的比较

    C# 中的 == 和 equals 比较 在 C# 编程语言中,`==` 和 `equals` 是两个常用的比较运算符,但它们之间有很大的区别。 堆和栈的区别 在理解 `==` 和 `equals` 之前,我们需要了解堆和栈的区别。堆是一种动态分配的...

    ==和equals的区别

    在 Java 中,比较值大小有两种方法:== 和 equals,这两个方法的使用场景和比较规则不同,下面我们将详细探讨它们的区别。 基本数据类型和引用数据类型 在 Java 中,有两种数据类型:基本数据类型和引用数据类型。...

    ==运算符和Equals()方法区别

    `==`运算符和`Equals()`方法都是用来比较两个对象是否相等的,但是它们之间存在着很大的区别,`==`运算符比较的是两个对象的引用是否相等,而`Equals()`方法比较的是两个对象的内容是否相等。在编写代码时,我们需要...

    字符串比较之 “==”和 “equals”

    在Java编程语言中,字符串是比较常见的数据类型,用于存储文本信息。在处理字符串时,我们经常需要比较两个字符串是否相等。...通过了解这些基础知识,开发者可以更好地处理和比较Java中的字符串。

    ==和equals方法究竟有什么区别

    在Java编程语言中,`==`和`equals()`方法是用来比较对象之间关系的两种常见方式,但它们在使用上有着显著的区别。 首先,`==`运算符主要用于比较基本类型(如int、char、byte等)的值是否相等,或者比较引用类型...

    ==与equals的比较

    "Java中的==和equals方法比较" 在Java中,`==`和`equals`是两种不同的比较方法,前者比较引用地址,而后者比较对象的实际内容。 首先,让我们来看看`==`运算符的用法。`==`运算符可以用来比较基本数据类型和引用...

    Java中的==和equals区别

    - 对于字符串和包装类,应优先使用`equals`方法进行比较,以确保得到正确的结果。 理解`==`与`equals`之间的区别对于编写正确且高效的Java代码至关重要。希望本文能帮助您更好地掌握这一概念,并在实际开发中避免...

    简单介绍java中的“==”和equals

    简单介绍java中的“==”和equals

    == and equals() 的比较 绝对值得看

    在Java编程语言中,了解`==`和`equals()`的区别是非常...在处理`String`对象时,了解字符串常量池的作用也非常重要,因为它会影响`==`和`equals()`的比较结果。理解和正确使用这两个运算符是编写高质量Java代码的基础。

    java基础之 “==”与“equals”区别详解

    “==”操作符和equals()方法都是用于比较两个对象是否相等的,但是它们的比较方式不同。“==”操作符比较的是对象的引用是否相同,而equals()方法比较的是对象的值是否相同。 4. 基本类型和引用类型的比较: 对于...

    知识点 比较运算符==和equals方法的比较

    在Java编程语言中,比较运算符`==`和`equals()`方法是用来检查两个对象是否相等的,但它们之间存在显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,我们来看`==`运算符。它主要用于基本数据类型的比较...

    java中equals和==的区别

    Java 中 equals 和 == 的区别 ...equals 和 == 是两个不同的概念,equals 比较的是对象的内容,而 == 比较的是对象的地址。在编程中,正确地使用 equals 和 == 是非常重要的,以避免程序中的错误和bug。

    java中==和equals的区别

    对于开发的程序员小伙伴,大家肯定对于==和equals不陌生,而且会经常用到他,那么又有几个能够说清楚了==和equals是怎么回事呢?他了呢两个有什么区别呢? 比较 == 比较的是栈中的值,基本数据类型是变量值,引用...

    浅析C#中的等号“==”和Equals

    1.“==”和Equals两个真的有关联吗?  对于“==”和Equals大多数网友都是这样总结的:  “==” 是比较两个变量的值相等。  Equals是比较两个变量是否指向同一个对象。  public class Person  {  public ...

    java中的==和equals()方法1

    在Java编程语言中,了解如何正确使用`==`和`equals()`方法是非常关键的,因为它们在比较对象和基本类型时有不同的行为。下面将详细解释这两个方法的工作原理、使用场景以及一些常见误区。 首先,`==`运算符主要用于...

    String中==与equals区别验证

    在Java编程语言中,`==` 运算符与 `equals()` 方法被广泛用于比较对象,尤其是当处理字符串...总的来说,`==` 和 `equals()` 在字符串比较中扮演着不同的角色。理解它们的区别对于编写高效且正确的Java程序至关重要。

    C#中的 == 和equals()区别浅析

    在C#编程语言中,`==`运算符和`Equals()`方法是两种常见的用于比较对象是否相等的方式,但它们之间存在重要的区别。本文将详细解释这两种比较方式的不同点。 首先,`==`运算符主要用于比较基本数据类型的值是否相等...

    equals与==之间的区别

    - **适用性**:`==`适用于基本类型和引用类型的地址比较,而`equals`主要适用于对象的内容比较。 - **行为**:`==`比较的是内存地址,而`equals`在某些类中比较的是对象的状态(内容)。 - **性能**:通常来说,`==`...

    “ ==”和.Equals()有什么区别?

    在C#编程语言中,“==”运算符和“.Equals()”方法是两种常见的用于比较对象是否相等的方式,但它们之间存在着重要的差异。理解这些差异对于编写高效且准确的代码至关重要。 首先,让我们来探讨“==”运算符。在C#...

    java中的比较运算符== 与 equals()方法 ..doc

    在Java编程语言中,经常需要对变量进行比较,这涉及到了两种常见的比较方式:`==`运算符和`equals()`方法。这两种方式有着本质的区别,并且适用于不同类型的数据。下面将详细介绍这两者之间的差异以及它们各自的应用...

Global site tag (gtag.js) - Google Analytics