String类型是Object类型,通过new操作符构建的字符串指向不同的对象。

==:是用来比较两个引用是否指向同一个对象,当引用指向同一个对象则为true,否则为false。s1和s2字符串的值虽然是相同的,但是两者是不同对象,所以==比较结果是false。

equals: String类重写了Object的equals方法

public boolean equals(Object anObject) {

if (this == anObject) {

return true;

}

if (anObject instanceof String) {

String anotherString = (String)anObject;

int n = value.length;

if (n == anotherString.value.length) {

char v1[] = value;

char v2[] = anotherString.value;

int i = 0;

while (n-- != 0) {

if (v1[i] != v2[i])

return false;

i++;

}

return true;

}

}

return false;

}

String类的equals方法里,如果两个String对象为同一个对象为true。如果两个String对象不是同一个对象时,则比较字符串里的字符,当字符一致时,比较的结果为true。所以s1和s2的值都为“test”,所以s1.equals(s2) 为true。

new String("test").equals("test") //true

new String("test") == "test" //false

new String("test") == new String("test") //false

"test" == "test" //true

Objects.equals("test", new String("test")) //true

java 字符串比较 == equals_java怎么比较字符串,==和equals有什么区别相关推荐

  1. java 字符串比较 == equals_Java在比较字符串的时候,equals 与== 完全一样呀?

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

  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类

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

  6. java 字符串驻留_java String 以及字符串直接量 与 字符串驻留池 ...

    结果输出 :fancydeepin这是怎么回事?不是说 String 是不可变的字符串吗?怎么这里又变了?是这样的,在这里 name 只是一个引用类型变量,并不是一个 String 对象,@1中创建了 ...

  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. Jacobian矩阵的几何意义
  2. 阿里巴巴业务平台事业部总负责人墙辉:加速构建国际电商体系
  3. python3 网络编程 主机字节序 网络字节序 相互转换
  4. 四、数据仓库和Hive环境搭建
  5. if else可以看成一个完整的代码块
  6. sql语句--查询语句(MySQL)
  7. 存储型xss漏洞怎么解决_FinDOMXSS:一款针对DOM型XSS漏洞的快速扫描工具
  8. Codeforces Round #721 (Div. 2)
  9. 《剑指offer》全解(图文结合,通俗易懂,一篇看爽)
  10. 分享一个非常 nice 的工具
  11. 图像处理 - ImageMagick 简单介绍与案例
  12. 国内顶尖网页游戏制作人和主策划名单(转)
  13. 如何解决 Windows 2000 设备管理器中列出的未知设备问题(转)
  14. CodeForces - 735D Taxes (哥德巴赫猜想)
  15. bochs镜像java模拟器_【 bochs win7镜像完整版 】bochs win7镜像完整版(bochs win7 img文件)新版下载 - U大师...
  16. 数据结构与算法分析 收获总结 第11章 图
  17. creator owner是什么用户_并发系列-到底什么重量级锁?
  18. 在线笔试神器~福利哟
  19. velocity 将字符串切割按每隔3位加逗号,map集合遍历,字符串拼接,
  20. 近似误差 与 估计误差

热门文章

  1. 大数据学习笔记37:Hive - 复杂数据类型
  2. 【BZOJ2553】禁忌,AC自动机+期望DP+矩乘
  3. 【BZOJ3152】组合子逻辑,贪心+堆
  4. 16.对极几何——极线约束,收敛相机,平行图像平面,两个立体对 测验_2
  5. C ++ 数组 | 寻找最大、最小值,数组(Array)_1
  6. 3GPP协议学习-TS 38.201-NR;物理层;总体描述
  7. 华为鸿蒙应用市场抽成,谷歌宣布抽成30%,开发者把华为鸿蒙看做是取代安卓的唯一救星...
  8. 新闻列表页flex_C端列表页如何设计?
  9. Easy-mock让团队协作效率提高不止一点点
  10. 如何在CentOS上创建Kubernetes集群