java 字符串比较 == equals_Java在比较字符串的时候,equals 与== 完全一样呀?
首先要考虑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 与== 完全一样呀?相关推荐
- java 字符串比较 == equals_java怎么比较字符串,==和equals有什么区别
String类型是Object类型,通过new操作符构建的字符串指向不同的对象. ==:是用来比较两个引用是否指向同一个对象,当引用指向同一个对象则为true,否则为false.s1和s2字符串的值虽 ...
- java面试题,将String字符串转换成数字
2019独角兽企业重金招聘Python工程师标准>>> 题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果 ...
- java string s_Java字符串:“String s=新字符串(”愚蠢“);
Java字符串:"String s=新字符串("愚蠢"): 我是一个学习Java的C+的人.我正在阅读有效的Java,有些东西让我感到困惑.它说永远不要写这样的代码:St ...
- java字符串 大括号_string.format格式化字符串中转义大括号“{}”
今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知"{0}"为索引占位符(即格式项),与参数列表 ...
- Java 中的字符串(String)与C# 中字符串(string)的异同
1. C# 中比较两个字符串字面量是否相等,可以使用 "=="比较运算符,是因为string 类型重写(override)了"==" 和 "!=&qu ...
- Java学习笔记(六)--字符串String类
文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...
- Java知多少(15)字符串
从表面上看,字符串就是双引号之间的数据,例如"微学苑"."http://www.weixueyuan.net"等.在Java中,可以使用下面的方法定义字符串: ...
- JAVA返回指定字符串的长度,Java截取指定字节长度的字符串
在实际的项目中,我们后台的数据库是根据指定编码(如GBK)保存数据的,为防止操作数据库时,因字段值长度超过数据库定义的长度,须在JAVA甚至JS层面做长度的校验控制,如数据库定义的长度是varchar ...
- java 以什么开头_判断字符串以什么开头
Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...
最新文章
- 基于问题导向与成果产出的教学模式:《大数据与城市规划》特色课程
- USB2.0 设备类代码表
- 获取列表中的最大的N项和最小的N项
- 机器学习之决策树_CART算法
- Cookie对象常用属性
- Ajax提交表单时获取不到 KindEditor 内容
- CCNA学习指南 网络互联
- 软件工程导论-软件工程概论(学习笔记)
- 【计算机网络】Linux系统连接吉林大学校园网
- 计算机fn的作用,fn是什么键 笔记本电脑fn键作用大全
- 图片裁切批处理_图片批量处理 如何批量将图片裁剪成一样的大小?按照一定的比例快速裁剪多张照片...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
- 手机盾验证失败是什么意思_手机盾是什么意思
- 外设驱动调试经验汇总--每天加一点
- 及时备份数据可以保护计算机系统吗,电脑数据的保护和备份
- 用inno setup做的安装程序,安装过程中被360报如下风险
- CSS2.1 第九章可视元素布局规则
- 【Marva Collins' Way】第七章
- Unity3d Terrain地形制作系列(三)雪山
- pheatmap进行热图绘制