“==”和equals()的用法
equals()是java.lang.Object类的方法。
*对于字符串变量来说:==”是比较两个对象在内存中的首地址;“equals()”是比较字符串中所包含的内容是否相同。
比如:
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
那么:
s1==s2 是 false //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,
故不相等。
s1.equals(s2) 是 true //两个变量的所包含的内容是abc,故相等。
注意(1):
如果: StringBuffer s1 = new StringBuffer(“a”);
StringBuffer s2 = new StringBuffer(“a”);
结果: s1.equals(s2) //是false
解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,
而Object类中的equals方法是用来比较“地址”的,所以等于false.
注意(2):
对于s3和s4来说,有一点不一样要引起注意,由于s3和s4是两个字符
串常量所生成的变量,其中所存放的内存地址是相等的,
所以s3==s4是true(即使没有s3=s4这样一个赋值语句)
对于非字符串变量来说,”==”和”equals”方法的作用是相同的都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
比如:
class A
{
A obj1 = new A();
A obj2 = new A();
}
那么:obj1==obj2是false
obj1.equals(obj2)是false
但是如加上这样一句:obj1=obj2;
那么 obj1==obj2 是true
obj1.equals(obj2) 是true
注:(1)如果是基本类型比较,那么只能用==来比较,不能用equals; (2)对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。
——————我是不及格的分隔线———————-
扩展:java.lang.String类中isEmpty()方法的使用,作用:判断是否为空串,length()等于0返回true,否则返回false。
String a = "helllo";
System.out.println(a.isEmpty()); //结果为false
String b = "";
System.out.println(b.isEmpty()); //结果为true
String c = null;
System.out.println(c.isEmpty());
//结果报空指针异常,java.lang.NullPointerException.
“==”和equals()的用法相关推荐
- equals的用法的注意事项
String a="equals的用法"; String b=a.equals("equals的用法")?"相等":"不相等&qu ...
- java中Object.equals()简单用法
/* equals()方法默认的比较两个对象的引用! */ class Child {int num;public Child(int x){num = x;}//人文的抛出运行时异常的好处是:可以自 ...
- java 实例 登录用户 equals的用法
import java.util.Scanner;public class login {public static void main(String[] args) {String name, pa ...
- java中equals合if的用法_java中的equals和==
下面是我看别人博客和java API总结的 首先得明确一个概念就是: == 的用法 ==比较对象在内存中的地址是否相等.如是是两个基本数据类型变量的比较则比较的是这两个变量值是否相等,但是这里要注意 ...
- Java基础学习总结(1)——equals方法
2019独角兽企业重金招聘Python工程师标准>>> 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 ...
- java中的equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test;2 3 public class TestEquals {4 public sta ...
- 在聊Java中的equals方法
2019独角兽企业重金招聘Python工程师标准>>> java规范中equals方法特征 自反性(对于任何非空引用x, x.equals(x) 返回true;) 对称性(对于任何引 ...
- java .equal_Java中的equals()
经过几天的学习,终于对equals的用法有了比较全面的认识,并做一个总结. 1.equals的本意--即在Object对象中定义的equals()方法有什么样的意义. (此处先附上==的作用,后面仍有 ...
- Java中hashCode和equals方法的正确使用
在这篇文章中,我将告诉大家我对hashCode和equals方法的理解.我将讨论他们的默认实现,以及如何正确的重写他们.我也将使用Apache Commons提供的工具包做一个实现. 目录: 1.ha ...
最新文章
- Oracle 排序中使用nulls first 或者nulls last 语法
- 今天学到的几个函数【二】
- Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
- 改进的有效边表算法_优硕微展 | 张和慧:基于邻域保持嵌入算法的间歇过程故障检测研究...
- SparkSql 数据类型转换
- HD2做Windows Phone 7开发机小记(上)
- 公募FOF同质化产品情况引人关注
- UG10.0如何导出CAD图
- 微服务网关——设计篇
- 电脑如何调整照片尺寸大小?证件照尺寸大小怎么调?
- 构造函数this指向
- tooltips的formate
- 谈谈写程序与学英语 --宋劲杉
- struggle in the ACM(一)
- 帆软报表更新到服务器控件展示不出来_报表工具软件FineReport常见问题与解答总结...
- mysql 去除逗号,MySQL查询删除字符串中最后一个逗号后的所有字符?
- [nrf52][SDK17] 如何修改BLE_MAC地址?
- mysql sphinx 中文搜索_MySQL中文全文搜索用迅搜还是Sphinx?
- 推荐几个堪称教科书级别的 Android 音视频入门项目
- 如何对用户输入进行校验
热门文章
- 策略 python_Python版商品期货多品种均线策略
- HTML+CSS+JS实现美女照片3D立方体旋转特效
- java继承调用先后_「继承顺序」JAVA继承顺序 - seo实验室
- java union pay 代码_Java标记了union / sum类型
- 首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了
- linux学习手册,Linux命令学习手册-ps
- 用程序同步mysql数据库表_初次用Java写了个数据库表同步工具
- cv2.imread()返回none时应如何解决
- linux装服务器系统,linux服务器系统安装
- 医疗小程序源码_不懂商城小程序源码,如何快速创建小程序商城?