String StringBuilder StringBuffer

来源:互联网 发布:网络维护外包费用 编辑:程序博客网 时间:2024/06/07 20:31

String

1,final不可变的

2,重写equals方法

 public boolean equals(Object anObject) {        if (this == anObject) {            return true;        }        if (anObject instanceof String) {            String anotherString = (String)anObject;            int n = value.length;            if (n == anotherString.value.length) {                char v1[] = value;                char v2[] = anotherString.value;                int i = 0;                while (n-- != 0) {                    if (v1[i] != v2[i])                        return false;                    i++;                }                return true;            }        }        return false;    }
3,重写hashCode方法( s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1])

public int hashCode() {        int h = hash;        if (h == 0 && value.length > 0) {            char val[] = value;            for (int i = 0; i < value.length; i++) {                h = 31 * h + val[i];            }            hash = h;        }        return h;    }

StringBuilder线程不安全的,主要用于方法内部(得保证在多线程环境下的安全);

StringBuffer线程安全的,主要用于全局变量。


原创粉丝点击