zoukankan      html  css  js  c++  java
  • ==和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下面)和重定向的使用上的区别?使用场景(查一下)

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    Python 学习笔记 11.模块(Module)
    Python 学习笔记 8.引用(Reference)
    Python 学习笔记 9.函数(Function)
    Python 学习笔记 6.List和Tuple
    Python 学习笔记 4.if 表达式
    Python 学习笔记 2.自省
    Python 学习笔记 3.简单类型
    Python 学习笔记 7.Dictionary
    Python 学习笔记 5.对象驻留
    Python 学习笔记 10.类(Class)
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/9629054.html
Copyright © 2011-2022 走看看