C# java 的 equals 与 == 的区别

C# 

            String a = "宜春";
            String b = new String(new char[] { '', '' });
            String c = b; //注意这里是引用传递,意思是c也指向b指向的内存地址

            bool r1 = a == b;  //true
            bool r2 = a == c;  //true
            bool r3 = b == c;  //true
            bool r4 = a.Equals(b);  //true
            bool r5 = a.Equals(c);  //true
            bool r6 = b.Equals(c);  //true

java

        String a = "宜春";
        String b = new String("宜春");
        String c = b; //注意这里是引用传递,意思是c也指向b指向的内存地址

        System.out.println(a == b);  //false
        System.out.println(a == c);  //false
        System.out.println(b == c);  //true
        System.out.println(a.equals(b));  //true
        System.out.println(a.equals(c));  //true
        System.out.println(b.equals(c));  //true

Java中的集合(Collection)有三类,一类是List,一类是Queue,再有一类就是Set。 前两个集合内的元素是有序的,元素可以重复;最后一个集合内的元素无序,但元素不可重复。


散列存储,采用了分离链接法(separatechaining)


这里需要区分一下,JDK1.7和 JDK1.8之后的 HashMap 存储结构。在JDK1.7及之前,是用数组加链表的方式存储的。

原文地址:https://www.cnblogs.com/xcj26/p/12706004.html