equals和=,==的区别

一. ==和equals的区别

1. ==是运算符

2. equals是String对象的方法

一般有两种类型的比较

1. 基本数据类型的比较

2. 引用对象的比较

1. 基本数据类型的比较

==和equals都比较的是值是否相等,相等则为true,否则为false

2. 引用对象的比较

==和equals都是比较是栈内存中的地址是否相等,相等则为true,否则为false

注意:

1. String是一个特殊的引用数据类型,==比较的是字符串对象的引用地址是否一样,equals比较的是栈中的内容是否一致。

  String ss = new String("abc");
  String sss = new String("abc");

  if(ss == sss){
   System.out.println("ss == sss is true");   
  }
  if(ss.equals(sss)){
   System.out.println("ss equals sss is true");
  }

控制台输出:
ss != sss
ss equals sss
表明:ss和sss在栈中的内存地址不同,但是在堆中的内容是相同的。

String ss = new String("abc");

String ssss = ss;

//判断ss和ssss在栈中的引用地址是否一样

   if(ss == ssss){
   System.out.println("ss == ssss");
  }else{
   System.out.println("ss != ssss");
  }

//判断ss和ssss在堆中的内容是否一样
   if(ss.equals(ssss)){
   System.out.println("ss equals ssss");
  }else{
   System.out.println("ss not equals ssss");
  }

控制台输出:

ss == ssss
ss equals ssss

这表明ss和ssss是相同的对象,并且他们在堆中的内容一样

2. 引用对象的比较

   TestBean obj1 = new TestBean();
   TestBean obj2 = new TestBean();
   TestBean obj3 = obj1;
   if(obj1 == obj2){
    System.out.println("obj1 == obj2");
   }else{
    System.out.println("obj1 != obj2");
   }
  
   if(obj1 == obj3){
    System.out.println("obj1 == obj3");
   }else{
    System.out.println("obj1 != obj3");
   }

控制台输出:

obj1!= obj2
obj1== obj3

表明obj1和obj2不是同一个对象,在栈中的引用地址不同

obj1和obj3是相同的对象,在栈中的引用地址相同

二. =和equals ==的区别

=表示的是赋值,即将=右边的值赋给左边的变量。equals和==是表示操作

 

转载于:https://www.cnblogs.com/minshia/p/5950969.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eq相等,smarty 比较操作符!时间戳

2019独角兽企业重金招聘Python工程师标准>>> eq相等, ne、neq不相等, gt大于, lt小于, gte、ge大于等于, lte、le 小于等于, not非, mod求模。 is [not] div by是否能被某数整除&am…

阅读笔记四

学以致用 战国末期的思想家荀子曾经说过:“知之而不行,虽敦必困”。看到这句话,我想大家都知道它的意思,懂得许多道理却不付诸实践,虽然知识很丰厚,也必将遇到困厄。 没错,在这半个多月当中&…

推荐!!!【大杂烩】url、file、blob、base64互相转换

url地址或file文件获取base64 base64转blob blob或file转url: 使用URL.createObjectURL()方法读取出url js读取图片不同信息流

html页面通过特殊链接:打电话,发短信,发邮件详细教程

From: http://www.cnblogs.com/liuhongfeng/p/4976599.html 采用url href链接的方式,实现在Safari ios,Android 浏览器,webos浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能。…

Photoshop切图学习

前端开发中,之前都是Designer给我们切好图,给出readline,所以我们前端工程师基本不自己动手切图,现在换了新的公司,需要我们自己手动切一些图。Designer制作好的psd的图片如下: 自己想达到以下要求&#xf…

【vant】van-list的滚动加载onload事件

1.van-list的滚动加载onload事件:onload莫名执行多次或者一直加载到所有数据。 2.官方说了,不能使用float和overflow。包括父级元素和html和body都不要用这些触发BFC的属性 3.滑动到底部会触发该事件(一定要注意父级标签,甚至 htm…

C#操作XmlDocument对象 报缺少根节点 一一道来

C# 操作XmlDocument文档 1.第一步选择文件目录string FileNamestring.Empty;SaveFileDialog sfdnew SaveFileDialog();if(sfd.ShowDialog() DialogResult.OK){ FileName sfd.FileName; }FileStream fs;//判断文件是否存在if(!File.Exists(FileName)){ fs File.Create(…

微信小程序开发demo-地图定位

要求要完成的功能: 1.要完成的要点是城市定位。 2.就是切换城市。 首页我们先参照微信小程序开放的官方文档找到: 在这里我们可以找到”当前位置经纬度“ getLocation: function (){var that this wx.getLocation({success: function (res) {console.lo…

移动端H5下载后端文件

首先是手机H5移动端上,针对能直接打开的文件例如pdf等,下载是直接打开预览了。如果要真正保存到手机里,需要点击右上角三个点去那里面选择保存。对于非预览文件会直接下载。 而在有些浏览器里,是可以直接下载出文件的。感觉这个与…

[CSS] 眼下最流行的五大CSS框架,你都知道么?

From: http://developer.51cto.com/art/201710/555733.htm 如今,CSS框架越来越受欢迎,可以说已经应用到每一个网站上了。作为开发工具,CSS框架一直处于不断进化和改进的状态,因此我们强烈建议您关注眼下的趋势。这篇文章会带您了…

centos5.8上安装git server

Git 可以使用四种主要的协议来传输数据:SSH 协议,Git 协议和 HTTP 协议。下面将一一介绍如何在服务端和客户端搭建和使用git的这些协议。 基础环境: git server:172.16.29.24 centos5.8 git client:172.16.29.25 centos5.8 首先需要在两在机…

实验五——循环结构学习总结

1.本次课学习到的知识点: (1)循环结构四要素:循环初始化,循环条件,循环体,循环变量修改 (2)循环语句包括:while语句、do-while语句、for语句、break语句 cont…

前端复制字符串到excel生成表格

场景需求:前端页面有个按钮,点击时候会复制一段文本,然后将复制的文本直接copy黏贴到excel表格里,就会自动形成对应的表格数据。 以下代码可以直接复制使用(有效的点赞支持一波): copyAll () {…

[QUICK UI] 有哪些目前流行的前端框架

From: https://blog.csdn.net/qianduankuangjia/article/details/78185047 使用前端框架其实和开发的项目有一定的关系,因为在不同的项目中可能会用到不同的组件功能,这样说可能有一点片面,但是在面临几十种再做出选择的时候确实有一定的难度…

XP设置文件夹默认打开方式改为“资源管理器”

为什么80%的码农都做不了架构师?>>> 在“资源管理器”中单击“工具→文件夹选项→文件类型”,在“已注册的文件类型”下的列表框中找到一个名为“资料夹”的选项(按文件类型排序的话它会排在最后面几个),选…

2018年五大最佳前端框架比较,程序员会怎么选?

From: https://blog.csdn.net/qq_41852103/article/details/79619250 现在有大量的CSS前端框架可用。但真正好的屈指可数。本文将比较五个最佳前端框架,每个框架都有自己的长处和短处,以及特定的应用领域,使你可以根据特定项目的需求进行选择…

解决ant design vue中的modal弹框样式修改无效问题 修改modal样式无效

ant design vue中的modal弹框修改样式无效问题 ant中的弹框样式是修改不了的 原因在于弹框modal被挂载在最大的元素div外面了 所以需要将挂载在某个html元素上 在modal外面主动套一个div 在修改样式即可:getContainer"()>$refs.ref"

网络安全——ipsec

网络安全——ipsecInternet 协议安全性 (IPSec)”是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯,它通过端对端的安全性来提供主动的保护以防止专用网络与 Internet 的***Ipsec是一个协议集合…

vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式

本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法;如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如下图所示…

前端开发框架对比

From: https://www.cnblogs.com/xtdxs/p/6540933.html 本文选取了 Bootstrap、jQuery UI、jQuery Mobile、Sencha ExtJS、Sencha Touch、Sencha GXT、Dojo、Dojo Mobile、Mootools、Foundation、YUI、Kissy、QWrap 等 16 个国内外前端开发框架进行初步的横向比较,可…