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);
}
}
分享到:
相关推荐
C# 中的 == 和 equals 比较 在 C# 编程语言中,`==` 和 `equals` 是两个常用的比较运算符,但它们之间有很大的区别。 堆和栈的区别 在理解 `==` 和 `equals` 之前,我们需要了解堆和栈的区别。堆是一种动态分配的...
在 Java 中,比较值大小有两种方法:== 和 equals,这两个方法的使用场景和比较规则不同,下面我们将详细探讨它们的区别。 基本数据类型和引用数据类型 在 Java 中,有两种数据类型:基本数据类型和引用数据类型。...
`==`运算符和`Equals()`方法都是用来比较两个对象是否相等的,但是它们之间存在着很大的区别,`==`运算符比较的是两个对象的引用是否相等,而`Equals()`方法比较的是两个对象的内容是否相等。在编写代码时,我们需要...
在Java编程语言中,字符串是比较常见的数据类型,用于存储文本信息。在处理字符串时,我们经常需要比较两个字符串是否相等。...通过了解这些基础知识,开发者可以更好地处理和比较Java中的字符串。
在Java编程语言中,`==`和`equals()`方法是用来比较对象之间关系的两种常见方式,但它们在使用上有着显著的区别。 首先,`==`运算符主要用于比较基本类型(如int、char、byte等)的值是否相等,或者比较引用类型...
"Java中的==和equals方法比较" 在Java中,`==`和`equals`是两种不同的比较方法,前者比较引用地址,而后者比较对象的实际内容。 首先,让我们来看看`==`运算符的用法。`==`运算符可以用来比较基本数据类型和引用...
- 对于字符串和包装类,应优先使用`equals`方法进行比较,以确保得到正确的结果。 理解`==`与`equals`之间的区别对于编写正确且高效的Java代码至关重要。希望本文能帮助您更好地掌握这一概念,并在实际开发中避免...
简单介绍java中的“==”和equals
在Java编程语言中,了解`==`和`equals()`的区别是非常...在处理`String`对象时,了解字符串常量池的作用也非常重要,因为它会影响`==`和`equals()`的比较结果。理解和正确使用这两个运算符是编写高质量Java代码的基础。
“==”操作符和equals()方法都是用于比较两个对象是否相等的,但是它们的比较方式不同。“==”操作符比较的是对象的引用是否相同,而equals()方法比较的是对象的值是否相同。 4. 基本类型和引用类型的比较: 对于...
在Java编程语言中,比较运算符`==`和`equals()`方法是用来检查两个对象是否相等的,但它们之间存在显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,我们来看`==`运算符。它主要用于基本数据类型的比较...
Java 中 equals 和 == 的区别 ...equals 和 == 是两个不同的概念,equals 比较的是对象的内容,而 == 比较的是对象的地址。在编程中,正确地使用 equals 和 == 是非常重要的,以避免程序中的错误和bug。
对于开发的程序员小伙伴,大家肯定对于==和equals不陌生,而且会经常用到他,那么又有几个能够说清楚了==和equals是怎么回事呢?他了呢两个有什么区别呢? 比较 == 比较的是栈中的值,基本数据类型是变量值,引用...
1.“==”和Equals两个真的有关联吗? 对于“==”和Equals大多数网友都是这样总结的: “==” 是比较两个变量的值相等。 Equals是比较两个变量是否指向同一个对象。 public class Person { public ...
在Java编程语言中,了解如何正确使用`==`和`equals()`方法是非常关键的,因为它们在比较对象和基本类型时有不同的行为。下面将详细解释这两个方法的工作原理、使用场景以及一些常见误区。 首先,`==`运算符主要用于...
在Java编程语言中,`==` 运算符与 `equals()` 方法被广泛用于比较对象,尤其是当处理字符串...总的来说,`==` 和 `equals()` 在字符串比较中扮演着不同的角色。理解它们的区别对于编写高效且正确的Java程序至关重要。
在C#编程语言中,`==`运算符和`Equals()`方法是两种常见的用于比较对象是否相等的方式,但它们之间存在重要的区别。本文将详细解释这两种比较方式的不同点。 首先,`==`运算符主要用于比较基本数据类型的值是否相等...
- **适用性**:`==`适用于基本类型和引用类型的地址比较,而`equals`主要适用于对象的内容比较。 - **行为**:`==`比较的是内存地址,而`equals`在某些类中比较的是对象的状态(内容)。 - **性能**:通常来说,`==`...
在C#编程语言中,“==”运算符和“.Equals()”方法是两种常见的用于比较对象是否相等的方式,但它们之间存在着重要的差异。理解这些差异对于编写高效且准确的代码至关重要。 首先,让我们来探讨“==”运算符。在C#...
在Java编程语言中,经常需要对变量进行比较,这涉及到了两种常见的比较方式:`==`运算符和`equals()`方法。这两种方式有着本质的区别,并且适用于不同类型的数据。下面将详细介绍这两者之间的差异以及它们各自的应用...