写在前面

==和equals有什么区别?这似乎是一道非常基础的面试题。

众所周知,==是比较地址,equals是比较数值。

那么问题来了。直接上代码

代码

    public static void test20(){Integer a1 = 10;Integer a2 = 10;Integer b1 = 1000;Integer b2 = 1000;Integer c1 = new Integer(10);Integer c2 = new Integer(10);System.out.println(a1 == a2);//trueSystem.out.println(b1 == b2);//falseSystem.out.println(c1 == c2);//falseString z1 = "abc";String z2 = "abc";String z3 = new String("abc");String z4 = new String("abc");System.out.println(z1 == z2);//trueSystem.out.println(z3 == z4);//false}

那么问题就很明显了。。。

解释

Integer定义的数值,-127到128的数据,都会放到栈中缓存起来,所以直接定义的Integer数据,在这个范围之内的,都使用的同一个数值。

同理String直接定义的字符串也是放到缓冲区中。

但是new出来的,还是放在堆中的。

java中==和equals引发的思考相关推荐

  1. java == hashcode,java中==和equals和hashCode的区别

    java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...

  2. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  3. 面试必问一:Java 中 == 和 equals 的区别你知道吗

    面试必问一:Java 中 == 和 equals 的区别你知道吗 前言 关于这个问题,一般初中级面试中都会遇到,还记得我当初实习找工作的时候也遇到了这个问题,现在都还记得自己是怎么回答的:== 是基本 ...

  4. Java中的equals学习小结

    Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其 主要内容,而且要将 = =和 equals列为重要的对比概念来 ...

  5. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  6. java中的equals()空对象的出错

    java中的equals()空对象的出错: String a = "abc"; //不是空对象boolean b = a.equals("abc"); //不会 ...

  7. java中equals函数所在的类,重写Java中的equals方法介绍

    Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型, ...

  8. C#和Java中“==”和“equals”区别

    C#中"=="和"equals"区别如下: 1 using System; 2 class Program 3 { 4 public static void M ...

  9. Java中 == 和 equals 的区别是什么?

    面试题汇总 Java中 == 和 equals 的区别是什么? 什么是==? == 等于比较运算符,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true ...

最新文章

  1. 昆虫基因组DNA的优化提取,可进行长读测序
  2. 电脑服务器高配置和高性能,为高性能工作站服务 超算系统配置推荐
  3. Tomcat 中文乱码 设置UTF-8编码 问题解决办法
  4. C++ 中 vector 的作用:
  5. linux下已修改但尚未保存_Linux下历史命令保存、默认值修改的问题
  6. Nginx_日志文件讲解
  7. SpringBoot的配置项
  8. 对不起,我把APP也给爬了
  9. html列目录带图片,根据目录下的图片的个数,往html文件填充对应数量的img标签,请问有没有实现这种需求的工具?...
  10. Java描述设计模式(08):桥接模式
  11. accounts/login/?next=/account/password-change/
  12. Outlook2010新建域内Exchang邮箱的另一种方法
  13. vi测试仪维修成功率高吗?_欧森杰检测仪:臭氧检测仪的六大特点,您真的了解吗?...
  14. 聚合支付的钱先到哪?一文让你读懂什么是聚合支付
  15. 非常好用的桌面壁纸更换软件
  16. 一文入手 JUC(20+单元)
  17. Linux 中task_struck
  18. win10经常无法复制粘贴
  19. 使用arduino驱动光驱步进电机
  20. Python入门基础总结笔记——正则表达式

热门文章

  1. 前后端分离开发,日志应该如何进行记录,在出现问题的时候,方便定位问题
  2. SpringBoot整合Swagger 自动生成在线API文档 偷懒必备 同时也是我们的基本操作啦!!!
  3. php 启动管理工具下载,phpPgAdmin|PostgreSQL管理工具(phpPgAdmin)下载v5.0.4 开源版 - 欧普软件下载...
  4. pycharm连接远程mysql_CentOS7安装mysql以及使用pycharm远程连接mysql时遇到的问题
  5. 奔图内部扫描错误13_现代浏览器内部揭秘(第三部分)
  6. VS2017 新建项目没有QT
  7. java大会主题曲_网易未来大会主题曲发布,从创作到演唱都由AI包办
  8. vue sleep_vue不常用的知识点的整理
  9. gorm存指针数据_gormt: gormt 是一个数据库映射工具,可以将 mysql 数据库自动生成 golang sturct 结构...
  10. one-hot与哑变量(dummy variable)的区别