Object中的方法(1)

    技术2022-09-01  85

    让我这个菜鸟淡淡的忧伤一会

    1:公司一位大佬建议阅读jdk源码,想想自己感到惭愧!感到羞耻! 想到以前看Java基础的时候经常看到问equals()方法和“==”逻辑运算符的区别,然后自己就去看了一下equals()方法,一点点开始。

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

    Object中equals和==是一样的。所以在Object中如果两个对象的引用是一样的,那么两个对象一定就是相同的。

    public static void main(String[] args) { Integer integer1 = new Integer(5); Integer integer2 = new Integer(5); System.out.println(integer1==integer2);---------------false System.out.println(integer1.equals(integer2));---------------true }

    当我创建integer1,integer1仅仅只是Integer类的引用并且是储存在栈中,但是new Integer(5)就不同了,new才是真正的创建了nteger对象,并将这个对象设了值,它储存在堆中。

    因为 == 对于类的对象比较的是引用,在栈中,这两个对象引用指向的空间不同所以是false,而equals对这两个对象进行比较所以为true。

    Processed: 0.011, SQL: 9