1,==用于比较基本数据类型,和引用类型。而equals是Object上的方法,可以被子类重写,用于判断内容一致。

比较奇葩的是,java基本数据类型(byte,short,int,long,float,double,char,boolean),并不包含String,所以不能用==来比较两个字符串相等。

        String s1 = new String("abc");String s2 = "abc";System.out.println(s1==s2);System.out.println(s1.equals(s2));

执行的结果是false,true.

用习惯了c#必定在这里犯错,c#中可以用==来比较两个字符串相等,这样的好处是不用去判断两边的操作数是否为null。虽然c#中string也不是值类型,但是对==做了特殊处理。

比如:

        if(s1.equals("this")){//方式1}if("this".equals(s1)){//方式2}if(s1.equals(s2)){//方式3}

方式1和方式3都有可能遇到null,然后程序挂掉。所以一般第二种方式在程序中用的比较多。

但如果java也像c#把string弄成可以用==比较,将会带来很大的方便,string类太常用了。

        if(s1==s2){//这一种就够了}

java中的==和equals相关推荐

  1. scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别

    这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...

  2. 2)Java中的==和equals

    Java中的==和equals   1.如果比较对象是值变量:只用== 2.如果比较对象是引用型变量: ==:比较两个引用是不是指向同一个对象实例. equals: 首先Object类中equals的 ...

  3. java中的==和equals的区别

    关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...

  4. java中的==、equals()、hashCode()源码分析(转载)

    在java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际的编程总结一下. 1. ==  java中的==是比较两个对象在JVM中的地址.比较好理解.看下面的代码: ...

  5. java中需要用equals来判断两个字符串值是否相等

    在C++中,两个字符串比较的代码可以为:  (string1==string2)  但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false  Java中必须使用string1.eq ...

  6. java中hashcode()和equals()的详解[转]

    今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36).  1. 首先equals()和hash ...

  7. Java中的==和equals区别

    概述:       A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同:当用于引用类型的时候,是比较对象是否相同.       B.对于String a = "a&quo ...

  8. java中的==、equals()、hashCode()源码分析

    在java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际的编程总结一下. 1. == java中的==是比较两个对象在JVM中的地址.比较好理解.看下面的代码: p ...

  9. equals null报错吗_轻轻松松教你搞定Java中的==和equals

    前言 相信很多读者关于==和equals懂了又懵,懵了又懂,如此循环,事实上可能是因为看到的博客文章之类的太多了,长篇大论,加上一段时间的洗礼之后就迷路了.本篇文章再一次理清楚.当然如果觉得本文太啰嗦 ...

  10. java 中hashcode 与 equals的关系

    先来看能表明hashcode和equals的关系的几句话: equals()相等的两个对象,hashcode()一定相等: equals()不相等的两个对象,却并不能证明他们的hashcode()不相 ...

最新文章

  1. 车辆行人检测数据集_开源 | 相机和激光雷达融合的行人车辆检测跟踪
  2. 两个Java项目之间的通信_两个容器之间的Docker通信与Java
  3. Java线程详解(8)-线程的同步
  4. linux ffmpeg加速和合并视频命令
  5. python蟒蛇绘制 C
  6. 重写Oracle的wm_concat函数,自定义分隔符、排序
  7. LeetCode Find the Duplicate Number 找重复出现的数(技巧)
  8. python中0xff_强悍的Python读取大文件的解决方案
  9. 最全HTML与CSS基础总结,不进来看看吗?
  10. echart高级使用_Vue:在Vue中使用echarts
  11. django、tornado、flask对比
  12. java 26进制转10进制_求将任意10进制数字转为26进制字母的算法
  13. dijkstra 路径搜索算法的c++简单实现
  14. 奥运五环(一键复制)
  15. BZOJ.4453.cys就是要拿英魂!(后缀数组 单调栈)
  16. Mybatis注解开发指北
  17. Tensorflow:输出tensor具体值
  18. 简单手机短信发送软件
  19. 蓝牙耳机哪款好?2021无线蓝牙耳机测评
  20. 如何做抖音自媒体?这些小技巧一定要掌握

热门文章

  1. 下一个人才大缺口:量子计算研究人员
  2. AI工程师面试知识点:机器学习算法类
  3. 机器视觉与机器学习牛人博客
  4. 干货丨2017年深度学习必读31篇论文(附下载地址)
  5. 中科院发布11大领域171个热点和新兴前沿!有你的研究方向吗?
  6. 北京“十四五”高精尖产业规划:到2025年集成电路产业实现营业收入3千亿元...
  7. 用物理学来为生命技术及制度的演化找出规律-读《为什么世界不会失控》
  8. 与微信、APP正面刚?三大运营商联合发布5G消息白皮书
  9. 人工智能最受欢迎的十大TED演讲
  10. “如果没有IBM和其所提供的系统,我们就无法登上月球。”