• Java Enum 比较用 == 还是 eques


    我是把枚举当作常量来使用的,枚举中还有两个自己的属性,关注到这个地方的朋友对枚举已经有了认识,这里就不再编写枚举的demo了,这里我直接说结果吧,在枚举中使用==和equals比较效果是一样的,查看源码可以知道枚举的equals方法还是通过==来比较的

    public final boolean equals(Object other) { 
            return this==other;
        }
    

      

    在java中,==比较的是内存地址(也可以说是对象的引用),equals比较的值,这两个区别在String中最明显了,因为String中重写了Object的equals方法,源码如下:

    public boolean equals(Object anObject) {
    	if (this == anObject) {
    	    return true;
    	}
    	if (anObject instanceof String) {
    	    String anotherString = (String)anObject;
    	    int n = count;
    	    if (n == anotherString.count) {
    		char v1[] = value;
    		char v2[] = anotherString.value;
    		int i = offset;
    		int j = anotherString.offset;
    		while (n-- != 0) {
    		    if (v1[i++] != v2[j++])
    			return false;
    		}
    		return true;
    	    }
    	}
    	return false;
        }
    

      还有一些对象也重写了equals方法,比如Integer,这些在开发中很少会去详细的研究,但是至少我们要知道,到用的时候要保证不出问题。

  • 相关阅读:
    (三)数据预处理过程简介
    (二)数据挖掘需要哪些技术
    (一) 什么是数据挖掘?
    怎样提问呢?
    什么是自我意识
    高效能人士的七个习惯
    “U”型读书法
    CMDB学习之一
    层级选择器
    css选择器
  • 原文地址:https://www.cnblogs.com/andysd/p/4016376.html
Copyright © 2020-2023  润新知