==和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下面)和重定向的使用上的区别?使用场景(查一下)

成年人的世界没有那么多的童话,也没有那么多的逆袭。
原文地址:https://www.cnblogs.com/shijinglu2018/p/9629054.html