• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 详解 Java 中 equals 和 == 的区别

详解 Java 中 equals 和 == 的区别

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了java 和equals的区别,java中equals和 区别,java中equals的用法,java重写equals方法,java中equals等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

详解 Java 中 equals 和 == 的区别

1 前言

  在 Java 语言中,equals 和 == 都是用来检测两个字符串是否相等,返回值也都是布尔型(boolean),但是两者在内部比较的处理中却不尽相同,因此在需要检测两个字符串是否相等的时候,我们一定要特别的注意,选择适当的检测方式,防止造成不必要的 bug。从表面上来看,这种 bug 很像随机产生的间歇性错误。

2 区别

  在需要检测两个字符串是否相等的时候,我们可以使用 equals 方法。对于表达式:

s.equals(t)
</div>

  如果字符串 s 与字符串 t 相等,则返回 true;否则,返回 false。需要注意的是,s 与 t 可以是字符串常量也可以是字符串变量。例如,下面的表达式就是合法的:

"Hello".equals(greating)
</div>

  更进一步,如果想要检测两个字符串是否相等,而不区分大小写,可以使用 equalsIgnoreCase 方法。例如,下面的表达式的值就是 true:

"Hello".equals("hello")
</div>

  在此,一定不能用 == 运算符来检测两个字符串是否相等!因为恒等运算符只能够确定两个字符串是否放置在同一个位置上。当然,如果两个字符串放置在同一个位置上,它们必然相等。但是,完全有可能将内容相同的多个字符串的拷贝位置放置在不同的位置上。

  如果虚拟机始终将相同的字符串共享,就可以使用 == 运算符来检测两个字符串是否相等。但实际上,只有字符串常量是共享的,而 + 和 substring 等操作产生的结果并不是共享的。

3 示例

/**
 * @author 维C果糖
 * @create 2017-02-14
 */

public class equalsAndHD {
  public static void main(String[] args) {
    String greating = "Hello";

    if (greating.equals("Hello")){
      System.out.println("1,通过 equals 输出的结果为:greating 与 Hello 的值相等!");
    }else {
      System.out.println("1,通过 equals 输出的结果为:greating 与 Hello 的值不相等!");
    }

    if ((greating.substring(0,2) + "llo") == "Hello"){
      System.out.println("2,通过 == 输出的结果为:greating 与 Hello 的值相等!");
    }else {
      System.out.println("2,通过 == 输出的结果为:greating 与 Hello 的值不相等!");
    }
  }
}

</div>

运行以上程序后,结果如下图所示:

通过观察以上的运行结果,显然可以发现,该程序完成验证了我们之前的观点。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java中==运算符与equals方法的区别及intern方法详解
  • Java中的== 和equals()方法详解与实例
  • 详解 Java 中 equals 和 == 的区别
  • Java中==运算符与equals方法的区别及intern方法详解
  • Java中的== 和equals()方法详解与实例

相关文章

  • 2017-05-28servlet监听实现统计在线人数功能 附源码下载
  • 2017-05-28Eclipse智能提示及快捷键
  • 2017-05-28Java Reference源码解析
  • 2017-05-28Java中JDBC连接数据库详解
  • 2017-05-28详解Spring Boot中Controller用法
  • 2017-05-28深入理解Java注解类型(@Annotation)
  • 2017-05-28java实现ftp上传 如何创建文件夹
  • 2017-05-28PipedWriter和PipedReader源码分析_动力节点Java学院整理
  • 2017-05-28Java 并发编程之线程挂起、恢复与终止
  • 2017-05-28Java 操作Properties配置文件详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解 问题:HttpServlet cannot be resolved to a type
    • Java 爬虫工具Jsoup详解
    • Java软件编程培训机构靠谱吗
    • Spring实现一个简单的SpringIOC容器
    • java HashSet深入理解
    • spring boot ajax跨域的两种方式
    • 详解SpringBoot多跨域请求的支持(JSONP)
    • Java中双向链表详解及实例
    • 详解SpringMVC 自动封装枚举类的方法
    • java 中file.encoding的设置详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有