首先要考虑equals跟==的作用:

==相当于是比较两个对象的引用,而equals方法是Object类中定义的,String类对其进行了重写,源代码可以看楼上的分析,首先也使用==比较了引用,之后比较内容。

我们在比较两个字符串时,大多是想比较内容,所以使用equals方法。如果你使用==,IDE其实是会抛一个警告的。

那么为什么你这里的==与equals方法效果一样呢,就要看使用“=”创建字符串对象与使用new创建字符串的区别。

不知道有没有去了解过字符串池,我的理解也不深,需要的话可以自己看看。

第一次使用“=”创建字符串对象时,会查看字符串池中有没有“12”,如果没有,那么就添加一个到池中,然后把引用返回给s;之后再创建s2时,发现池中有,那么直接将这个引用赋给s2,所以s和s2的引用是相同的,造成==比较为true。

可以用new的方式创建字符串,然后看看效果:

String s1 = "12";

String s2 = "12";

String s3 = new String("12");

System.out.println(s1 == s2);//true

System.out.println(s1.equals(s2));//true

System.out.println(s1 == s3);//false

System.out.println(s1.equals(s3));//true

使用new关键字创建字符串对象时,每次都会新创建一个对象,然后把引用赋给变量。

java 字符串比较 == equals_Java在比较字符串的时候,equals 与== 完全一样呀?相关推荐

  1. java 字符串比较 == equals_java怎么比较字符串,==和equals有什么区别

    String类型是Object类型,通过new操作符构建的字符串指向不同的对象. ==:是用来比较两个引用是否指向同一个对象,当引用指向同一个对象则为true,否则为false.s1和s2字符串的值虽 ...

  2. java面试题,将String字符串转换成数字

    2019独角兽企业重金招聘Python工程师标准>>> 题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果 ...

  3. java string s_Java字符串:“String s=新字符串(”愚蠢“);

    Java字符串:"String s=新字符串("愚蠢"): 我是一个学习Java的C+的人.我正在阅读有效的Java,有些东西让我感到困惑.它说永远不要写这样的代码:St ...

  4. java字符串 大括号_string.format格式化字符串中转义大括号“{}”

    今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知"{0}"为索引占位符(即格式项),与参数列表 ...

  5. Java 中的字符串(String)与C# 中字符串(string)的异同

    1. C# 中比较两个字符串字面量是否相等,可以使用 "=="比较运算符,是因为string 类型重写(override)了"==" 和 "!=&qu ...

  6. Java学习笔记(六)--字符串String类

    文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...

  7. Java知多少(15)字符串

    从表面上看,字符串就是双引号之间的数据,例如"微学苑"."http://www.weixueyuan.net"等.在Java中,可以使用下面的方法定义字符串: ...

  8. JAVA返回指定字符串的长度,Java截取指定字节长度的字符串

    在实际的项目中,我们后台的数据库是根据指定编码(如GBK)保存数据的,为防止操作数据库时,因字段值长度超过数据库定义的长度,须在JAVA甚至JS层面做长度的校验控制,如数据库定义的长度是varchar ...

  9. java 以什么开头_判断字符串以什么开头

    Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...

最新文章

  1. 基于问题导向与成果产出的教学模式:《大数据与城市规划》特色课程
  2. USB2.0 设备类代码表
  3. 获取列表中的最大的N项和最小的N项
  4. 机器学习之决策树_CART算法
  5. Cookie对象常用属性
  6. Ajax提交表单时获取不到 KindEditor 内容
  7. CCNA学习指南 网络互联
  8. 软件工程导论-软件工程概论(学习笔记)
  9. 【计算机网络】Linux系统连接吉林大学校园网
  10. 计算机fn的作用,fn是什么键 笔记本电脑fn键作用大全
  11. 图片裁切批处理_图片批量处理 如何批量将图片裁剪成一样的大小?按照一定的比例快速裁剪多张照片...
  12. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
  13. 手机盾验证失败是什么意思_手机盾是什么意思
  14. 外设驱动调试经验汇总--每天加一点
  15. 及时备份数据可以保护计算机系统吗,电脑数据的保护和备份
  16. 用inno setup做的安装程序,安装过程中被360报如下风险
  17. CSS2.1 第九章可视元素布局规则
  18. 【Marva Collins' Way】第七章
  19. Unity3d Terrain地形制作系列(三)雪山
  20. pheatmap进行热图绘制

热门文章

  1. 怎么看待传菜机器人_餐厅服务机器人可能是什么样的?
  2. 华硕服务器安装完系统起不来,w10安装后启动不起来的具体处理办法【图文】
  3. H3C 路由度量值(Metric)
  4. ros-Qt代码环境的搭建
  5. GCD应用及其他方法
  6. 编辑index.html
  7. Verilog HDL中阻塞语句和非阻塞语句的区别
  8. CGGeometry.h详解
  9. python学习笔记12-类代码编写细节
  10. Linux系统的各种安装方法与修复技巧