A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 为了你而出现 中级黑马   /  2013-10-22 18:51  /  2010 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问"equals"和"=="的在用法上有什么区别吗,可以互用吗?我是个菜鸟,正在努力着。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1 赞一个!

查看全部评分

12 个回复

倒序浏览
提示下,很多基础的问题,论坛里都有同学问过了,可以查找以前的提问帖。
提问和答题都需要注意质量。
回复 使用道具 举报
equals主要是判断字符串相等,==是判断一般是int是否相等
回复 使用道具 举报
equals和==都是比较两个值是否相等,结果为ture或者false,==是判断int型的,是一个运算符,equals貌似是表示两个元素是同一个对象的引用 求技术分
回复 使用道具 举报
你应该看今天晚上的YY课程的!付东老师讲解的很仔细。  "equals"比较的是两边内容是否相同!  "=="比较的是两边地址是否相同
回复 使用道具 举报
equalsb比较的是内容 ==比较的是地址
回复 使用道具 举报
“equals”比较的是对象的内容,“==”比较的是对象的地址。
首先通过代码来说明“==”比较的是什么?代码如下:
  1. class CompareDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str1 = "hello";        //通过直接赋值的方式实例化对象。
  6.                 String str2 = new String("hello"); //通过new关键字实例化对象。
  7.                 String str3 = str2;
  8.                 System.out.println("str1==str2--->"+(str1==str2));
  9.                 System.out.println("str1==str3--->"+(str1==str2));
  10.                 System.out.println("str2==str3--->"+(str2==str3));
  11.         }
  12. }
复制代码
输出的结果是:
str1==str2--->false
str1==str3--->false
str2==str3--->true
通过上面的输出结果可以得出“==”比较的是内存的引用地址,因为str1和str2的内存地址不一样,所以结果是false,而str2和str3指向的是同一内存地址,所以结果为true。

再通过代码来说明“equals”比较的是什么?代码如下:
  1. class CompareDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str1 = "hello";        //通过直接赋值的方式实例化对象。
  6.                 String str2 = new String("hello"); //通过new关键字实例化对象。
  7.                 String str3 = str2;
  8.                 System.out.println("str1==str2--->"+str1.equals(str2));
  9.                 System.out.println("str1==str3--->"+str1.equals(str2));
  10.                 System.out.println("str2==str3--->"+str2.equals(str3));
  11.         }
  12. }
复制代码
输出的结果是:
str1==str2--->true
str1==str3--->true
str2==str3--->true
通过上面的输出结果可以得出“equals”比较的是对象的内容,因为内容都是hello,即使引用的内存地址不一样,但最终的结果都是true。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1 很给力!

查看全部评分

回复 使用道具 举报
==是指对内存地址进行比较  squals()是对字符串的内容进行比较
回复 使用道具 举报
==是指对内存地址进行比较  equals()是对字符串的内容进行比较  比如string a = "abc"; string b = "abc"; 这是用==比较就是true,用equals()也是相等的。但是这样string a = "abc"; string b = new string("abc")用==比较就是false了,然而equals()还是相同的

评分

参与人数 1黑马币 +3 收起 理由
简★零度 + 3

查看全部评分

回复 使用道具 举报
equals是比较引用类型的内存地址是否一样,结果为true或false,==是比较值是否一样
回复 使用道具 举报
还记得梦想吗 来自手机 中级黑马 2013-12-5 08:11:04
11#
不童对象值相同的话可用equals为真,但用==比较的话,不同对象不相等!!!!
回复 使用道具 举报
==是指对内存地址进行比较 ,squals()是对字符串的内容进行比较
==指引用是否相同,equals()指的是值是否相同
回复 使用道具 举报
一般情况下不可以互用,比如在引用中时==是指对内存地址进行比较  equals()是对字符串的内容进行比较
此时不能互用如果是对基本类型数据进行比较时可以互用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马