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