网站首页 > java教程 正文
对于比较,在我们的第一反应中就是第一个与第二个是否相等,在Java开发语言中,我们经常是使用双等号“==”来进行两个变量的判断,比如3==3为正确(true),但是在Java中使用“==”进行字符串判断的时候,有时候两个变量明明都是一模一样的,但是他的结果却一直是不相等(false),所以对于新手开发者来说,经常会感到迷惑。通常在我们开发的时候,经常使用的比较方法为a.equals(b)来进行判断两个字符串是否相等。
在Java中,使用“==”一般比较的是两个变量的地址,也就是说这两个变量是在同一个内存单元存储,他们的结果才会相等,对于两个字符串String a = "1234"; String b = "1234";对于这两个变量a和b,当时用“==”和使用a.equals(b)的时候,他们的结果都是相等的,因为a和b两个字符串后是两个字符串常量,他们在内存中的存储是在同一个地方,所以使用“==”和a.equals(b)两个结果都是相等的;
但是对于String a = new String("1234); String b = new String("1234");虽然a和b的结果都是“1234”,但是使用“==”进行判断的时候,得到的结果却是不相等的,因为此时的a和b是两个对象,他们所存在的内存位置不相等,所以“==”他的判断也就是不相等的了,此时使用a.equals(b)得到的结果就是正确的;
之所以使用a.equals(b)的结果是判断出两个字符串一样,是因为String类重写了equal()的方法,他的比较方法是循环遍历两个字符串中的每个字符,只有当两个字符串中每个位置上的字符都一样的时候,这个方法返回的值才会是相等(true);
因此在我们开发过程中,遇到字符串的比较,使用字符串的equals()的方法进行判断,这样会减少很多的bug;同样不仅仅对于字符串的比较,对于任何两个对象的比较,我们都可以使用equal()方法;
看完上面的内容,你了解Java字符串比较了吗?
猜你喜欢
- 2024-11-24 Java基础刷题,一篇入门
- 2024-11-24 LeetCode题解|1047.删除字符串中的所有相邻重复项
- 2024-11-24 java集合框架-Collection与List集合
- 2024-11-24 悟空云课堂 | 第三期:路径遍历漏洞的防范与检测
- 2024-11-24 LeetCode-043-字符串相乘
- 2024-11-24 Java面试:给你15到20分钟,你把这道编程题写下
- 2024-11-24 一个简单的字符串,为什么 Redis 要设计的如此特别
- 2024-11-24 Go&Java算法之至少有K个重复字符的最长子串
- 2024-11-24 2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符
- 2024-11-24 剑指offer(二十七)-字符串的排列(Java版)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)