Java String 的compareTo()、equals()、== 三种比较运算符的区别总结
2021/12/1 22:13:57
本文主要是介绍Java String 的compareTo()、equals()、== 三种比较运算符的区别总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们先来看下方法:
boolean equals(Object anObject) 将此字符串与指定的对象比较。 int compareTo(Object o) 把这个字符串和另一个对象比较。
== 和 equals的区别:
==主要是两个变量值的比较,返回值为true 或者是false。对于普通变量,如:int a=10; int b= 10; a==b,返回为 true。
而对于下面情况:
String a=new String("abc");
String b=new String("abc");
a==b; 返回的则是一个false。这是因为,对于对象的比较是对对象引用的比较,对于a和b ,他们在内存中对应的地址是不一样的,所以 a==b 返回的值是一个false.
==操作符并不涉及对象内容的比较。若要对对象内容进行比较,则用equals. 如果 在本例中,a.equals(b)则返回是一个true值。
总而言之,==是对对象地址的比较,而equals是对对象内容的比较。对于基本数据类型,一般用==,而对于字符串的比较,一般用equals
compareTo():
java.lang包下面的基本数据类型的封装类都提供了该方法,如 Integer,Float,Byte,Short,Character 等
在String 中,则是按照字典顺序进行比较,返回的值是一个int 型。
返回0,含义为相等。
一段示例代码:
public class HelloJavaString{ public static void main(String args[]){ String str1=new String("abc"); String str2=new String("abc"); //输出==比较 System.out.println((str1==str2)? "true":"false");//false //输出equals比较 System.out.println((str1.equals(str2))? "true":"false");//true //输出compareTo比较 if(str1.compareTo(str2)==0){ System.out.println("str1 is equal str2");}//str1 is equals str2 //输出赋值后的==比较 str1=str2; System.out.println((str1==str2)? "true":"false");//true } }
str2对象赋值给str1之后,str2和str1的引用其实是指向了内存中的同一个位置。所以,再进行==比较时,结果就是true.
这篇关于Java String 的compareTo()、equals()、== 三种比较运算符的区别总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器