2019/9/5 java基础

1.equal()和==

(1)Integer

1)推荐用equals(),这个还可以避免一些空指针问题的出现。

2)或者使用Integer.intValue();这样出来的就是int值,就可以直接比较了(可能会抛出空指针异常);

3)当用“==”进行比较时,jvm默认是比较数据在java堆的地址

参考:https://www.cnblogs.com/ryelqy/p/11014766.html

(2)String

equals:比较两个String对象的值是否相等

= =:比较两个String对象的指向的内存地址是否相等

(3)double

1)转换为字符串:只能比较同精度的

2)使用sun提供的Double.doubleToLongBits()方法

该方法可以将double转换成long型数据,从而可以使double按照long的方法(<, >, ==)判断是否大小和是否相等

3)使用BigDecimal类型

double a = 0.001; 
double b = 0.0011; 
BigDecimal data1 = new BigDecimal(a); 
BigDecimal data2 = new BigDecimal(b); 
data1.compareTo(data2)

4)两实数相等:两实数的差的绝对值在允许的范围内认为相等既可认为是相等的

参考:https://blog.csdn.net/FansUnion/article/details/91998918

(4)对象

重写equal()方法

重写equals()方法的步骤一般如下:
1)先用“==”判断是否相等。
2、判断equals()方法的参数是否为null,如果为null,则返回false;因为当前对象不可能为null,如果为null,则不能调用其equals()方法,否则抛java.lang.NullPointerException异常。
3)当参数不为null,则如果两个对象的运行时类(通过getClass()获取)不相等,返回false,否则继续判断。
4)判断类的成员是否对应相等。往下就随意发挥了。

    public boolean equals(Object obj) {

        if(obj==null){

            return false;

        }

        if(this==obj){

            return true;

        }

        if(obj instanceof Dog){

            Dog dog=(Dog)obj;

            if(dog.age==this.age&&dog.name.equals(this.name)){

                return true;

            }else{

                return false;

            }

        }

        return false;

    }

参考:https://www.cnblogs.com/hujingwei/p/5322330.html

2.Queue队列接口

(1)Deque双端队列接口

参考:https://blog.csdn.net/blog_szhao/article/details/23914169

1)ArrayDeque数组队列实现:

Deque<> mydeque = new ArrayDeque<>();

参考:https://blog.csdn.net/qq_30379689/article/details/80558771

https://www.cnblogs.com/wxd0108/p/7366234.html

2)LinkedList链表队列实现:

参考:https://www.cnblogs.com/be-forward-to-help-others/p/6825738.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值