A."=="可用于基本类型和引用类型:

  当用于基本类型时候,是比较值是否相同;1==2; false;

  当用于引用类型的时候,是比较是否指向同一个对象。

 B.基本类型int、char、float等没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。

C.一般的类,当没有重写equals方法时,equals()方法与“==”作用是相同的;

D.对于String类较为特殊:

String a = "abc"; String b="abc"; a==b 返回true,a.equals(b)返回true, 因为abc放在data区域;

      String a = new String("hello"); String b=new String("hello"); a==b是false(指向不同对象), 而a.equals(b)返回true(对象内容相同);

E .更一般的,当equals()被重写时,往往用于对象的内容是否相同,请看下面的例子:

 public class TestEqual{
public static void main(String[] args)
{
Cat c1 = new Cat(1, 2, 3);
Cat c2 = new Cat(1, 2, 3);
Cat c3 = new Cat(2, 2, 2);
System.out.println(c1 == c2);//返回false 不指向同一个对象
System.out.println(c1.equals(c2));//返回true 对象内容相同
System.out.println(c1 == c3);//返回false 不指向同一个对象
System.out.println(c1.equals(c3));//返回false 对象内容不同
}
} class Cat
{
int color;
int height, weight; public Cat(int color, int height, int weight)
{
this.color = color;
this.height = height;
this.weight = weight;
} public boolean equals(Object obj)
{
if(obj == null) return false;
else{
if(obj instanceof Cat)
{
Cat c = (Cat)obj;
if(c.color == this.color && c.height == this.height && c.weight == this.weight)
{
return true;
}
}
}
return false;
} }

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. CodeForces-1132F Clear the String

    题目链接 https://vjudge.net/problem/CodeForces-1132F 题面 Description You are given a string \(s\) of leng ...

  2. NO6——KMP

    int next[N]; char str1[M],str2[N]; //str1 长,str2 短 //len1,len2,对应str1,str2的长 void get_next(int len2) ...

  3. Week 1 Team Homework #3 from Z.XML-软件工程在北航

    任务名称:软件工程在北航 任务要求:要求我们采访往届师兄师姐,收集他们对于软件工程这门课程的反馈.具体作业链接http://www.cnblogs.com/jiel/p/3311403.html 任务 ...

  4. c#form界面情况下显示console窗体

    使用console.write()前后加上AllocConsole()和FreeConsole()方法. 注意:如果在使用之前有console输出(不带有这两个方法),则会无效. 这两个方法: [Dl ...

  5. eclipse安装问题

    eclipse安装之前需要安装JDK. 注意:eclipse和JDK需要一致,如都是64位或者都是32位. 不然会报错.

  6. 文本太长,用省略号显示的css样式

    ——html代码 <divid="d1" title="鼠标放上显示的文字"></div> ——css代码 #d1{ width:300 ...

  7. PokeCats开发者日志(三)

      现在是PokeCats游戏开发的第四天的晚上,明天要过周末了,所以提前写一下开发者日志吧! day4   day4主要是优化界面和增加游戏可玩性.   (1)感觉只有三只喵喵的话,玩家只需要无脑点 ...

  8. bootstrap-table 增加序号列(支持分页)

    columns: [ { checkbox: true }, { title: '序号', align: 'center', halign: 'center', formatter: function ...

  9. [Leetcode] Linked list cycle 判断链表是否有环

    Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...

  10. 洛谷 P2480 [SDOI2010]古代猪文 解题报告

    P2480 [SDOI2010]古代猪文 题目背景 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" ...