昆明java培训
达内昆明广州春城路

18487146383

热门课程

Java培训:equals和=,==的区别

  • 时间:2016-10-19
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明达内Java培训的老师今天给大家讲equals和=,==的区别

一. ==和equals的区别

1. ==是运算符

2. equals是String对象的方法

一般有两种类型的比较

1.基本数据类型的比较

2.引用对象的比较

1.基本数据类型的比较

==和equals都比较的是值是否相等,相等则为true,否则为false

2.引用对象的比较

==和equals都是比较是栈内存中的地址是否相等,相等则为true,否则为false

注意:

1. String是一个特殊的引用数据类型,==比较的是字符串对象的引用地址是否一样,equals比较的是栈中的内容是否一致。

String ss = new String("abc");

String sss = new String("abc");

if(ss == sss){

System.out.println("ss == sss is true");  

}

if(ss.equals(sss)){

System.out.println("ss equals sss is true");

}

控制台输出:

ss != sss

ss equals sss

表明:ss和sss在栈中的内存地址不同,但是在堆中的内容是相同的。

String ss = new String("abc");

String ssss = ss;

//判断ss和ssss在栈中的引用地址是否一样

if(ss == ssss){

System.out.println("ss == ssss");

}else{

System.out.println("ss != ssss");

}

//判断ss和ssss在堆中的内容是否一样

if(ss.equals(ssss)){

System.out.println("ss equals ssss");

}else{

System.out.println("ss not equals ssss");

}

控制台输出:

ss == ssss

ss equals ssss

这表明ss和ssss是相同的对象,并且他们在堆中的内容一样

2.引用对象的比较

TestBean obj1 = new TestBean();

TestBean obj2 = new TestBean();

TestBean obj3 = obj1;

if(obj1 == obj2){

System.out.println("obj1 == obj2");

}else{

System.out.println("obj1 != obj2");

}

if(obj1 == obj3){

System.out.println("obj1 == obj3");

}else{

System.out.println("obj1 != obj3");

}

控制台输出:

obj1!= obj2

obj1== obj3

表明obj1和obj2不是同一个对象,在栈中的引用地址不同

obj1和obj3是相同的对象,在栈中的引用地址相同

二. =和equals ==的区别

=表示的是赋值,即将=右边的值赋给左边的变量。equals和==是表示操作

了解更多详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:【昆明达内Java培训】Java关键字之static
下一篇:Apache Shiro中Apache Shiro Web Support的配置

昆明达内Java培训带你了解机器学习

中美it行业数据大pk

昆明达内java培训的面试问题你都掌握了吗

机器学习领域需要掌握什么

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货