source code reading album

1521 단어 reading

public boolean contentEquals(CharSequence cs) {
        if (value.length != cs.length())
            return false;
        // Argument is a StringBuffer, StringBuilder
        if (cs instanceof AbstractStringBuilder) {
            char v1[] = value;
            char v2[] = ((AbstractStringBuilder) cs).getValue();
            int i = 0;
            int n = value.length;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
        // Argument is a String
        if (cs.equals(this))
            return true;
        // Argument is a generic CharSequence
        char v1[] = value;
        int i = 0;
        int n = value.length;
        while (n-- != 0) {
            if (v1[i] != cs.charAt(i))
                return false;
            i++;
        }
        return true;
    }

charAt(i)와value[i]의 차이점: 아래 첨자의 접근이 매우 빠르고 charAt()도 아래 첨자에 따라 개if가 추가로 판단된다. 효율 차이점은 charAt()가 창고에 들어간다는 데 있다. 단일 String의 효율 차이는 크지 않다. 내가 1w 길이의 문자열을 시험해 봤는데 이 두 가지 방법은 3milliseconds 정도밖에 차이가 나지 않는다. 그러나 jvm의 대부분 대상이 String이고 모래가 쌓여 탑이 된다는 것을 알아야 한다. 여기에 추가적인 약간의 효율도 매우 낙관적이다.
Array List는 Random Access를 실현하지만 링크드 List는 없습니다. get ()과sub List () 는 이 두 가지 방법이 다릅니다.
Integer.valueOf () 값이 -128~127이면 캐시를 직접 가져옵니다.

좋은 웹페이지 즐겨찾기