zoukankan      html  css  js  c++  java
  • java equals总结

    一、 ==运算符和equals的区别

    == 可以使用在基本数据类型变量 和引用数据类型变量

    如果比较的是基本数据类型变量;比较两个变量保存的数据是否相等。(不一定类型相等),对于引用类型就是比较内存地址

    equals 它是属于java.lang.object类里面的方法,如果该方法没有被重写过默认也是==

    String类的equals方法是被重写过的,所以 String equals时会为true

    Object类中 equals()的定义

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

    object类中定义的equals和==的作用是相同的,比较两个对象的地址值是否相同;

    String、Date File包装类都重写了equals方法,比较的不是两个引用的地址是否相同,而是比较两个对象的 实体内容是否相同。

    public class Order {
        
        private int orderId;
        
        private String orderName;
    
        public int getOrderId() {
            return orderId;
        }
    
        public void setOrderId(int orderId) {
            this.orderId = orderId;
        }
    
        public String getOrderName() {
            return orderName;
        }
    
        public void setOrderName(String orderName) {
            this.orderName = orderName;
        }
        
    
        public Order(int orderId, String orderName) {
            super();
            this.orderId = orderId;
            this.orderName = orderName;
        }
    
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + orderId;
            result = prime * result + ((orderName == null) ? 0 : orderName.hashCode());
            return result;
        }
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Order other = (Order) obj;
            if (orderId != other.orderId)
                return false;
            if (orderName == null) {
                if (other.orderName != null)
                    return false;
            } else if (!orderName.equals(other.orderName))
                return false;
            return true;
        }
        
    }

    public class EqualsTest {
        
        public static void main(String[] args) {
            
            int i=1;
            double k=1;
            System.out.println( i==k);
            Order or1=new Order(1,"aa");
            Order or2=new Order(1,"aa");
            //若用两个对象==则是为false的
            System.out.println(or1==or2);
            
            System.out.println(or1.equals(or2));
        }
    }

    结果:true
    false
    true
  • 相关阅读:
    ThinkPHP 3.2 调用自定义函数库
    phpstorm 2017版代码提示功能开启解决方案
    phpstorm 2017激活
    JavaScript返回上一页和返回上一级页面并刷新
    PHP处理Ajax请求与Ajax跨域
    13个能快速开发android的经典项目
    分享6款优秀的 AR/VR 开源库
    Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
    Android------视频播放器(包含全屏播放,快退,快进,腾讯新闻的列表播放等)
    吴恩达课后作业学习2-week1-2正则化
  • 原文地址:https://www.cnblogs.com/hellohero55/p/12663331.html
Copyright © 2011-2022 走看看