• ==和equasl、hashmap原理(***)


    public class String01 {
         public static void main(String[] args) {
                String a="test";
                String b=new String("test");
                System.out.println(a==b);//false
                System.out.println(a.equals(b));//true
         }
    }

    equals比较的是两个对象的内容是否相等,是否指向同一个对象,一般要重写这个方法,如果没重写则是判断对象的地址

    是否相等,而==比较的是数值是否相等,或者是对象的地址是否相等。

    具体参看:

    equals和==的区别:

    https://www.cnblogs.com/Eason-S/p/5524837.html

    http://www.cnblogs.com/dolphin0520/p/3592500.html

    https://www.cnblogs.com/2019wxw/p/10925760.html

    ==如果是基础数据类型的话比较的是值的大小,如果是引用数据类型的话,比较的是地址值是否相等;

    equals默认情况下是比较对象的地址值是否相等,但是重写之后比较的是变量的值是否相等,而String

    类默认重写了equals方法,看看青鸟视频;

    String a = "abc";// abc在常量池中
    String b = "abc";//栈中b指向常量池中的abc
    String c = new String("abc");// 在堆内存中重新开辟了一个abc的空间
    String d = c.intern();//检查字符串池里是否存在"abc"这么一个字符串,如果存在,就返回池里的字符串;如果不存在,该方法会 把"abc"添加到字符串池中,然后再返回它的引用。
       
     
    System.out.println(a==b);//true
    System.out.println(a.equals(b));//true
    System.out.println(a==c);//false
    System.out.println(a.equals(c));//true
    System.out.println(a==d);//false
    System.out.println(a.equals(d));//true

    hashmap原理:

    http://www.cnblogs.com/chengxiao/p/6059914.html#t2

    ---------------------------------------------------------------------------------------------------------------

    转发(在视图解析器可以看到,访问的页面隐藏在WEBINF/web下面)和重定向的使用上的区别?使用场景(查一下)

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    codeforces 701 D. As Fast As Possible(数学题)
    codeforces 807 E. Prairie Partition(贪心+思维)
    codeforces 807 D. Dynamic Problem Scoring(贪心+思维)
    codeforces 807 C. Success Rate(二分)
    Atcoder C
    Atcoder D
    hdu 3308 LCIS(线段树区间合并)
    SpringMVC学习笔记---
    Composer Yii2 不设置全局变量 归档安装 Win7
    电脑硬件扫盲--CPU 显卡
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/9629054.html
Copyright © 2020-2023  润新知