旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java中equals与“==”的区分【JAVA教程】,java,equals,==,区别

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:85评论:0


导读:区分:==比较的是变量(栈)内存中寄存的对象的(堆)内存地点,用来推断两个对象的地点是不是雷同,即是不是是指雷同一个对象。比较的是真正意义上的指针操纵。equals用...

区分:

== 比较的是变量(栈)内存中寄存的对象的(堆)内存地点,用来推断两个对象的地点是不是雷同,即是不是是指雷同一个对象。比较的是真正意义上的指针操纵。

equals用来比较的是两个对象的内容是不是相称,由于一切的类都是继续自java.lang.Object类的,所以适用于一切对象,假如没有对该要领举行掩盖的话,挪用的仍然是Object类中的要领,而Object中的equals要领返回的倒是==的推断。

java中的数据范例能够分为两类:

基础数据范例

byte,short,char,int,long,float,double,boolean

基础数据范例之间的比较需要用双等号(==),由于他们比较的是值。

援用数据范例

接口、类、数组等非基础数据范例

Java中的字符串String属于援用数据范例,由于String是一个类。

当他们用(==)举行比较的时刻,比较的是他们在内存中的寄存地点,所以,除非是同一个new出来的对象,他们的比较后的效果为true,不然比较后效果为false。由于没new一次就会从新拓荒一个新的堆内存空间

Entity entity = new Entity();
Entity entity1 = new Entity();
Entity entity2 = entity;
        
System.out.println(entity==entity2);
System.out.println(entity.equals(entity2));

System.out.println(entity.equals(entity1));
System.out.println(entity==entity1);

效果:

true
true
false
false

总结:

关于复合数据范例之间举行equals比较,在没有覆写equals要领的情况下,他们之间的比较照样内存中的寄存位置的地点值,跟双等号(==)的效果雷同;假如被复写,根据复写的请求来。

== 的作用:

基础范例:比较的就是值是不是雷同;

援用范例:比较的就是地点值是不是雷同。

equals 的作用:

援用范例:默许情况下,比较的是地点值,重写该要领后比较对象的成员变量值是不是雷同。

引荐教程:java入门教程

以上就是java中equals与“==”的区分的细致内容,更多请关注ki4网别的相干文章!

标签:javaequals==区别


欢迎 发表评论: