Java判断字符串相等==和equal详解
在初学Java时,可能会经常碰到下⾯的代码:
public static void main(String[] args) {
equals()方法//两种声明⽅式,有所差别
String s1="hello";
String s2="hello";
String s3=new String("hello");
String s4=new String("hello");
System.out.println(s1==s2);//true
System.out.println(s3==s4);//false
//判断字符串相等:⼀般不⽤==,⽽⽤equals⽅法
System.out.println(s1.equals(s2));//true
System.out.println(s3.equals(s4));//true
}
(1)对于==,如果作⽤于基本数据类型的变量(byte,short,char,int,long,float,double,boolean ),则直接⽐较其存储的"值"是否相等;如果作⽤于引⽤类型的变量(String),则⽐较的是所指向的对象的地址(即是否指向同⼀个对象)。
(2)equals⽅法是基类Object中的⽅法,因此对于所有的继承于Object的类都会有该⽅法。在Object类中,equals⽅法是⽤来⽐较两个对象的引⽤是否相等,即是否指向同⼀个对象。
(3)对于equals⽅法注意:equals⽅法不能作⽤于基本数据类型的变量。如果没有对equals⽅法进⾏重写,则⽐较的是引⽤类型的变量所指向的对象的地址;⽽String类对equals⽅法进⾏了重写,⽤来⽐较指向的字符串对象所存储的字符串是否相等。其他的⼀些类诸如Double,Date,Integer等,都对equals⽅法进⾏了重写⽤来⽐较指向的对象所存储的内容是否相等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论