package demo;

public class Test {
public static void main(String[] args) {
String str1 = new String("hello");
String str2 = new String("hello"); System.out.println(str1==str2); //==比较地址值是否相等,false
System.out.println(str1.equals(str2)); //比较对象内容,true System.out.println(System.identityHashCode(str1));
System.out.println(System.identityHashCode(str2)); Integer a = new Integer(5);
Integer b = new Integer(5); System.out.println(a==b); //false
System.out.println(a.equals(b)); //true
System.out.println("a_id:" + System.identityHashCode(a));
System.out.println("b_id:" + System.identityHashCode(b)); //equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象
/* equals方法不能作用于基本数据类型的变量
* 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址
*/ String s1 = "abcdef123";
String s2 = "abcdef123";
System.out.println(System.identityHashCode(s1));
System.out.println(System.identityHashCode(s2)); System.out.println(s1==s2); //比较变量的值,true
System.out.println(s1.equals(s2)); //true int n = 3;
int m = 3; System.out.println(n==m); //true
//8种基本数据类型,==比较值是否相等,如果作用于引用类型的变量,则比较的是所指向的对象的地址
//System.out.println(n.equals(m)); /*String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等。
* 其他的一些类诸如Double,Date,Integer等,都对equals方法进行了重写用来比较指向的对象所存储的内容是否相等。
*/
}
}

小结:

使用==比较原生类型如:boolean、int、char等等,使用equals()比较对象。

==:如果比较的是基本数据类型,那么比较的是变量的值。

==:如果比较的是引用数据类型,那么比较的是地址值(两个对象是否指向同一块内存)

equals:如果没有重写equals方法比较的是两个对象的地址值。如果重写了equals方法后往往比较的是对象中的属性的内容。

Java中的equals与==的更多相关文章

  1. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  2. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  3. Java中的equals和hashCode方法

    本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...

  4. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  5. java集合(3)- Java中的equals和hashCode方法详解

    参考:http://blog.csdn.net/jiangwei0910410003/article/details/22739953 Java中的equals方法和hashCode方法是Object ...

  6. 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ...

  7. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

  8. 关于Java中的equals方法

    关于Java中的equals方法 欢迎转载,但是请填写本人的博客园原址https://www.cnblogs.com/JNovice/p/9347099.html 一.什么是equals方法 equa ...

  9. 沉淀再出发:java中的equals()辨析

    沉淀再出发:java中的equals()辨析 一.前言 关于java中的equals,我们可能非常奇怪,在Object中定义了这个函数,其他的很多类中都重载了它,导致了我们对于辨析其中的内涵有了混淆, ...

  10. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

随机推荐

  1. java 启动jar 指定端口

    java 启动jar 指定端口 java -jar xxx.jar --server.port=80

  2. (转)Tomcat与Jetty区别

    一.简介 Tomcat: Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...

  3. null与“ ”的区别

    null是空对象,""是空字符串 null可以赋值给任何对象 ""只能赋值给字符串对象 String s=null; string.trim()就会抛出为空的e ...

  4. spring cloud fegin传递request header

    本文链接:https://blog.csdn.net/zhongzunfa/article/details/82791903 1.概述 今天一个朋友, 遇到一个如何在使用spring cloud fe ...

  5. 公共组件及脚手架webpack模板

    一.公共组件的创建和使用 前面已经学习vue组件时,了解了公共组件,但在脚手架项目中只使用过局部组件.这里是讲解全局组件如何在脚手架项目中去使用. 1.创建全局组件 在src/components/C ...

  6. [LeetCode] 113. Path Sum II 二叉树路径之和之二

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  7. windows 排查javaWeb程序占用CPU过高问题(可追踪到问题代码所在行)

      1.情景展示 java虚拟机占用这么高的CPU,肯定不正常! 2.原因分析 第一个是tomcat,正在运行java项目: 第二个是eclipse,因为eclipse的运行依赖于java. 现在的问 ...

  8. Golang 基础语法介绍及对比(二)

    传值与传参 Golong func main() { a := fmt.Println("a = ", a) // 应该输出 "a= 3" a1 := add1 ...

  9. RabbitMQ心跳检测与掉线重连

    1.RabbitMQListener,自定义消息监听器 using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using ...

  10. 4 datax mysql 和hbase的 相互导入

                                                  mysql-->hbase     0 参考文档: https://github.com/alibab ...