Java中"str1.equals(str2)"和"str1==str2"的区别
大家好,这是我的第一篇博客,作为即将入职的学生,我现在的心情是既好奇又兴奋,对未知的职场生活充满了无限的憧憬,也想赶紧对大学生活say goodbye,因为自己的能力现在还比较有限,我想通过博客这个平台来慢慢提升自己,我想发一些平常在Java或者其他领域经常使用到的知识,不仅是对你们有帮助,同时也是我自己的进步,谢谢大家了。虽然我知道可能有很多人发过类似的博客或者技术贴,但是我尽量还是用我自己的语言来描述,支持原版。好的,废话不多说,接下来就进入正题吧~
我们直接从一个实例来开始我们今天的学习吧。
我新建了一个class名为Test01
public class Test01 { public static void main(String[] args){
String a="helloworld";
String b="helloworld"; System.out.println(a.equals(b));
}
}
大家看上述实例,答案会是什么呢,首先一点,我们要明白的问题是,不管是".equals()"还是"==",他的返回值是true或者是false,而不是0,1或者-1,所以上述实例的输出值最终为true。现在我们将输出的语句进行修改:
public class Test01 { public static void main(String[] args){
String a="helloworld";
String b="helloworld"; System.out.println(a==b);
}
}
其输出值仍为true。
大家都明白,"=="比较的是2个对象的地址,而".equals()"比较的是2个对象的内容,那这个区别究竟体现在那个地方呢,咱们看接下来的实例。
public class Test01 { public static void main(String[] args){
String a="helloworld";
String b="hello" +new String("world");
System.out.println(a.equals(b));
}
}
大家觉得现在的输出是什么呢,没错,依然是true,因为".equals()"比较的是2个对象的内容,很明显不管是字符串a还是字符串b,他们的值没变,都是helloworld,所以返回的值依然是true,我们再看下一个实例。
public class Test01 { public static void main(String[] args){
String a="helloworld";
String b="hello" +new String("world");
System.out.println(a==b);
}
}
没错,这个时候这个表达式的返回值就是false了。因为b2中的world是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。
想要搞懂这个其实还是不难的,大家只要注意以后在编程中是需要进行如何的比较即可~
希望我的分享对大家有帮助,以后我也会积极更新微博,不管是简单的或者是复杂的知识点,或者是我曾经做的项目之类的,我都会分享出我的经验,谢谢大家一起学习,共同进步。
Java中"str1.equals(str2)"和"str1==str2"的区别的更多相关文章
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ...
- Java中的equals学习小结
Java中的equals是十分重要的,和= =要区别开来,现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式 public boolean equals ...
- java中的 equals 与 ==
Java中的"=="永远比较的是两个对象是否是同一个对象(引用指向同一块内存就是同一个对象) Java中equals() 在使用必须与类挂上钩,不能单独使用.有的人这样理解&quo ...
- 【转】浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 【转】彻底弄懂Java中的equals()方法以及与"=="的区别
彻底弄懂Java中的equals()方法以及与"=="的区别 一.问题描述:今天在用Java实现需求的时候,发现equals()和“==”的功能傻傻分不清,导致结果产生巨大的偏差. ...
- Java中的equals,==,compareTo和compare的比较
Java中的equals(),==,compareTo()和compare() 首先只有==可以用作两个基本类型数据之间的比较,当然是值比较.当用作两个对象比较时,比较的是对象引用,而不是值比较. 其 ...
- java 中的equals()小结
转载自http://www.cnblogs.com/jackyrong/archive/2006/08/20/481994.html Java中的equals是十分重要的,和= =要区别开来,最近在看 ...
- Java中的equals和hashCode方法
本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...
随机推荐
- 尚学linux课程---9、yum相关操作和知识
尚学linux课程---9.yum相关操作和知识 一.总结 一句话总结: 如何使用比如163,阿里云给yum配置yum源:去官网,不要百度:直接去官网,有帮助文档的(比如centos的就在centos ...
- 云-腾讯云-短信:短信(SMS)
ylbtech-云-腾讯云-短信:短信(SMS) 快速稳定.简单易用.触达全球的短信服务,支持国内短信.语音短信与国际短信 1.返回顶部 1. 腾讯云短信 SMS 简介 腾讯云短信(Short Mes ...
- 2017/7/26 SCJP英语学习
1 Declarations and Access Control ............... 1 Java Refresher . . . . . . . . . . . . . . . . . ...
- quartz的job中注入spring对象!
一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类. 自定义一个类: public ...
- 建立ftp服务器和客户端
参考:https://www.cnblogs.com/judes/p/9546447.html 补充: 权限设置:如下所示,如果需要上传文件需要勾选write权限,需要在文件中添加内容勾选append ...
- maven配置步骤
仅做操作手册使用,一些操作频率较高的步骤已省略 第一步:度娘下载maven并解压 此处使用了apache-maven-3.2.5-bin.zip, 解压后复制到了D盘的D:\maven\apache- ...
- odoo 在更多下面直接调用方法
<record id="action_get_qc_result" model="ir.actions.server"> <field nam ...
- React项目开发经验汇总
博客来源 小寒的博客 定义好全局配置信息 环境变量不要提取出来,配置信息提取出来 UI样式变量 定义好变量的作用不用多说 样式库建设 工具样式,复用性强的样式,这些class成为会是真个网站样式的 ...
- CobaltStrike与Metasploit实战联动
前言 CobalStrike 与 Metasploit 均是渗透利器,各有所长.前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用.两者更需要灵活的联动,各自相互依托,从而提升渗透的效率. ...
- phpstorm中完成一键快速注释函数头
先保存函数,再在函数头写/**+enter就行了 /** * @param $num1 * @param $num2 * @param $opt * @return float|int */ func ...